我很惊讶地看到IS NULL和= NULL在选择查询中产生不同的结果。它们之间有什么区别?什么时候用什么。如果您能详细解释我,我将很高兴。
3 回答
![?](http://img1.sycdn.imooc.com/545847f50001126402200220-100-100.jpg)
慕雪6442864
TA贡献1812条经验 获得超5个赞
= NULL总是unknown(这是3状态逻辑的一部分),但是WHERE子句将其视为false并从结果集中删除。所以NULL你应该使用IS NULL
![?](http://img1.sycdn.imooc.com/5333a1a90001c8d802000200-100-100.jpg)
慕的地10843
TA贡献1785条经验 获得超8个赞
要添加到现有答案中,取决于使用“ = NULL”时是否打开ANSI_NULLS。
-- This will print TRUE
SET ANSI_NULLS OFF;
IF NULL = NULL
PRINT 'TRUE'
ELSE
PRINT 'FALSE'
-- This will print FALSE
SET ANSI_NULLS ON;
IF NULL = NULL
PRINT 'TRUE'
ELSE
PRINT 'FALSE'
- 3 回答
- 0 关注
- 865 浏览
添加回答
举报
0/150
提交
取消