是 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