is not NULL 和 != NULL 的区别
SQL server中 is not NULL 和 != NULL 的区别
NULL 表示的是什么都没有,它与空字符串、0 这些是不等价的,是不能用于比较的! 如: = NULL 、 NULL = '' 得到的结果为 false,判断 NULL 必须使用 IS NULL 或 IS NOT NULL 进行判断。
- 创建数据库
--创建数据库database_1
CREATE DATABASE database_1
- 创建表
CREATE TABLE database_1.DBO.Table_1(
[Column] CHAR(5),
[Values] CHAR(5)
)
- 插入值
INSERT INTO Table_1 ([Column],[Values])values
('列1','值1'),
('列2','值2'),
('列3',null),
('列4',null),
('列5',null)
-完成后的表的内容
-测试 !=NULL
SELECT *FROM DBO.Table_1 WHERE [Values] != NULL;
查询结果
-测试 is not NULL
SELECT *FROM DBO.Table_1 WHERE [Values] IS NOT NULL;
查询结果
-结论
默认情况下,推荐使用 IS NOT NULL去判断,因为SQL默认情况下对!= Null的判断会永远返回0行,但没有语法错误。
如果你一定想要使用!= Null来判断,需要加上这个语句:
set ANSI_NULLS off
SELECT *FROM DBO.Table_1 WHERE [Values] != NULL set ANSI_NULLS off;
这时你会发现IS NOT NULL 和 != null 是等效的。