为什么这给了我一个我所期待的:
IF (SELECT 123) = 123
PRINT 1
ELSE
PRINT 2
但是这给了我2个我没想到的:
IF (SELECT NULL) = NULL
PRINT 1
ELSE
PRINT 2
答案 0 :(得分:3)
NULL
值由IS NULL
你必须使用:
IF (SELECT NULL) IS NULL
PRINT 1
ELSE
PRINT 2
来自manual:
要搜索NULL值的列值,不能使用expr = NULL测试。以下语句不返回任何行,因为expr = 对于任何表达式
,NULL永远不会成立
答案 1 :(得分:3)
如果您关闭NULLS
SET ANSI_NULLS OFF
IF (SELECT NULL) = NULL
PRINT 1
ELSE
PRINT 2
然后你会得到PRINT 1
答案 2 :(得分:1)
您无法使用NULL
检查=
。因为必须使用IS
。
例如:
IF (SELECT NULL) IS NULL
PRINT 1
ELSE
PRINT 2
答案 3 :(得分:1)
您无法使用NULL
检查=
。您需要使用IS NULL
,如下所示
IF (SELECT NULL) IS NULL
PRINT 1
ELSE
PRINT 2