2
'NOT NULL' 後面 '空' 我得到:爲什麼我在這裏不是空?
DECLARE @X Int
SELECT CASE @X
WHEN NULL THEN 'NULL'
ELSE 'NOT NULL'
END
SELECT 'NULL'
WHERE @X IS NULL
'NOT NULL' 後面 '空' 我得到:爲什麼我在這裏不是空?
DECLARE @X Int
SELECT CASE @X
WHEN NULL THEN 'NULL'
ELSE 'NOT NULL'
END
SELECT 'NULL'
WHERE @X IS NULL
因爲NULL <> NULL
在case statement
你比較NULL = NULL
它沒有這樣NOT NULL
得到了選擇。
嘗試改變你Case statement
像這樣。
SELECT CASE
WHEN @X IS NULL THEN 'NULL'
ELSE 'NOT NULL'
END
使用
SET ANSI_NULLS OFF
查詢之前。默認情況下,SQL Server不支持與空等同表達
默認情況下它帶有
SET ANSI_NULLS ON
而ANSI_NULLS是你不能使用NULL = NULL檢查,而不是「IS NULL」已被使用
但是我不能說'什麼時候是空的',因爲這不起作用:「關鍵字'IS'附近的語法不正確」。 –
@Phillip這不是正確的語法在'案件'等同。檢查我的答案 –
哦,謝謝。我可以在9分鐘內接受你的答案。 –