是 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