首页 > 数据库技术 > 详细

sql关键字之null

时间:2015-07-25 12:06:02      阅读:281      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!