我不明白。
我有这个表达,但没有用。
IF @LocationName <> NULL AND
@Latitude <> NULL AND
@Longitude <> NULL AND
@Zoom <> NULL AND
@MapTypeId <> NULL
BEGIN
...
END
我把它改成了这个表达式。
IF @LocationName Is NOT NULL AND
@Latitude Is NOT NULL AND
@Longitude Is NOT NULL AND
@Zoom Is NOT NULL AND
@MapTypeId Is NOT NULL
BEGIN
...
END
它有效......
WTH?
答案 0 :(得分:7)
答案 1 :(得分:3)
处理NULL
值时,不能使用比较运算符。 NULL
实际上没有任何价值,因此您无法对其进行比较 - 当您尝试比较时,它会返回UNKOWN
。
您必须使用IS NULL
或IS NOT NULL
答案 2 :(得分:3)
您无法检查某些内容是否与NULL
相等,因为NULL
的值和类型未知。
您必须检查IS NULL
或IS NOT NULL
答案 3 :(得分:2)
<>
的行为可以通过设置SET ANSI_NULLS
来修改。
编辑:但是,不建议这样做,如上页中的文字所示。
答案 4 :(得分:1)
那是ternary logic。它是主要的SQL功能之一,你应该永远记住它。