這更多的是爲了滿足自己的好奇心。考慮下面的語句:SQL Server 2005 - 在比較中使用空值
DECLARE @result BIT
SET @result = CASE WHEN NULL <> 4 THEN 0
ELSE 1
END
PRINT @result
爲什麼我回來 「1」,而不是 「0」
將其更改爲:
DECLARE @result BIT
SET @result = CASE WHEN NULL IS NULL
OR NULL <> 4 THEN 0
ELSE 1
END
PRINT @result
正確給我回 「0」
我知道NULL比較可能會很棘手,但這個特殊的例子在我們的代碼審查過程中滑過。
任何澄清,將不勝感激
您的代碼不能在Management Studio中編譯。你確定這個有效的T-Sql(這是一個SQL 2005的具體問題)?我從來沒有見過T-sql中使用的UNKNOWN關鍵字。 – luksan 2010-06-04 17:37:35
@luksan我在替換真值表中的值試圖有幫助它不是有效的SQL! – 2010-06-04 17:39:05
它的僞代碼。 – JNappi 2010-06-04 17:40:10