在SQL中,NULL是一种特有的数据类型,其等价于没有任何值、是未知数。NULL与0、空字符串、空格都不同。SQL默认情况下对WHERE XX!= Null的判断会永远返回0行,却不会提示语法错误。
非ANSI SQL标准中data=NULL等同于data IS NULL,data<>NULL等同于data IS NOT NULL。
所以:默认情况下做比较条件时使用关键字“is null”和“is not null”。
image.png
select name form table where name !='jack';
该语句只能查出第1行,也就是mike;
select name form table where name !='jack' or name is null;
该语句可以查出第1行和第3行,也就是mike和NULL;
总结:也就是说,!= 和=用来判断具体的值,而NULL需要用is或者is not判断(只能用is或is not,且like或not like不能判断)
如果你一定想要使用 != Null来判断,需要加上这个语句:
set ANSI_NULLS off
这时会发现 is not NULL 和 != null 是等效的。
网友评论