是 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