是 null 不为空
由于 null 不是值,因此不能将比较运算符与空值一起使用。
要检查列或变量是否保持为 null,你需要使用 is null
:
DECLARE @Date date = '2016-08-03'
以下语句将选择值 6
,因为所有与 null 值的比较都计算为 false 或 unknown:
SELECT CASE WHEN @Date = NULL THEN 1
WHEN @Date <> NULL THEN 2
WHEN @Date > NULL THEN 3
WHEN @Date < NULL THEN 4
WHEN @Date IS NULL THEN 5
WHEN @Date IS NOT NULL THEN 6
将 @Date 变量的内容设置为 null
并重试,以下语句将返回 5
:
SET @Date = NULL -- Note that the '=' here is an assignment operator!
SELECT CASE WHEN @Date = NULL THEN 1
WHEN @Date <> NULL THEN 2
WHEN @Date > NULL THEN 3
WHEN @Date < NULL THEN 4
WHEN @Date IS NULL THEN 5
WHEN @Date IS NOT NULL THEN 6