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)

-完成后的表的内容

alt

-测试 !=NULL

 SELECT *FROM DBO.Table_1 WHERE [Values] != NULL;
查询结果

alt

-测试 is not NULL

   SELECT *FROM DBO.Table_1 WHERE [Values] IS NOT NULL;
查询结果

alt

-结论

默认情况下,推荐使用 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 是等效的。

全部评论

相关推荐

Yushuu:你的确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了😆
点赞 评论 收藏
分享
像好涩一样好学:这公司我也拿过 基本明确周六加班 工资还凑活 另外下次镜头往上点儿
点赞 评论 收藏
分享
评论
2
1
分享
牛客网
牛客企业服务