码迷,mamicode.com
首页 > 数据库 > 详细

sql关键字之null

时间:2015-07-25 12:06:13      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:

在数据库中使用一种特殊的值表示未知的值--NULL,我们称之为空值但并不是空的字符串,而是特殊的值。

技术分享

 

执行:

select * from EMP where EMPID in(2,3,null);

结果:

技术分享

        

执行:select * from EMP where EMPID not in(2,3,null);

结果:no rows selected;

 

开始我以为应该返回EMPID的数据,然而并不是。

 

select * from EMP where EMPID not in(2,3,null);

等价:select * from EMP where EMPID not (empid=2 or empid=2 or empid=null);

等价:select * from EMP where EMPID not (false or false or empid=null);

等价:select * from EMP where EMPID not null;

 

PS:FALSE OR NULL=NULL ,而TRUE OR NULL=TRUE

1SET ANSI_NULLS 被设置为 ON

也不会返回任何结果集

2SET ANSI_NULLS 被设置为 off

返回不为null 的数据

 

推出结论:在where条件返回false或null的时候不成立

 

sql关键字之null

标签:

原文地址:http://www.cnblogs.com/gkl2013/p/4675459.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!