已習慣抓出null的資料,要下where 某某欄位 is null了,
今天臨時被USER問到「is null」、「= null」這兩者的差異在哪?

以下截取MSDN的說明:

http://technet.microsoft.com/zh-tw/library/ms188795.aspx

若要判斷運算式是否為 NULL,請利用 IS NULL 或 IS NOT NULL 來取代比較運算子 (如 = 或 !=)。當兩個引數或其中一個引數是 NULL 時,比較運算子會傳回 UNKNOWN。

http://technet.microsoft.com/zh-tw/library/ms191270.aspx

比較 Null 值時需要特別注意。比較的行為會根據 SET ANSI_NULLS 選項的設定而有所不同。

當 SET ANSI_NULLS 是 ON 時,比較一個或多個 Null 運算式不會產生 TRUE 或 FALSE 的結果,而會產生 UNKNOWN。這是因為未知的值無法與任何值進行邏輯比較。如果運算式與常值 NULL 比較,或是兩個運算式互相比較但其中有一個是 NULL 值,就會發生此狀況。