我得到的不是空的'然后是' null':
DECLARE @X Int
SELECT CASE @X
WHEN NULL THEN 'NULL'
ELSE 'NOT NULL'
END
SELECT 'NULL'
WHERE @X IS NULL
答案 0 :(得分:4)
因为NULL <> NULL
在case statement
中,您比较NULL = NULL
失败,因此NOT NULL
被选中。
尝试像这样更改你Case statement
。
SELECT CASE
WHEN @X IS NULL THEN 'NULL'
ELSE 'NOT NULL'
END
答案 1 :(得分:0)
使用
SET ANSI_NULLS OFF
在查询之前。默认情况下,SQL Server不支持将表达式等同于null
默认情况下它附带
SET ANSI_NULLS ON
当ANSI_NULLS打开时,你不能使用NULL = NULL而是检查&#34; IS NULL&#34;必须使用