2017年3月26日 星期日

[MSSQL] NULL 查詢方法 (ANSI_NULLS)

MSSQL Server 預設 ANSI_NULLS ON。

ANSI_NULLS 為ON時查詢,值為NULL並且定義為尋條件,回傳0筆資料。
ANSI_NULLS 為OFF時查詢,值為NULL並且定義為尋條件,回傳查詢結果。

ANSI_NULLS OFF 並不遵循SQL-92,SQL-92 標準要求對空值的等於 (=) 或不等於 (<>) 比較取值為 FALSE。



SET ANSI_NULLS { ON | OFF }  

SET ANSI_NULLS ON
 
SELECT * FROM Test
 
SELECT * FROM Test
WHERE MAIL <> null
 
SELECT * FROM Test
WHERE MAIL = null
 
SELECT * FROM Test
WHERE MAIL IS NULL


SET ANSI_NULLS OFF
 
SELECT * FROM Test
 
SELECT * FROM Test
WHERE MAIL <> null
 
SELECT * FROM Test
WHERE MAIL = null
 
SELECT * FROM Test
WHERE MAIL IS NULL
參考


沒有留言:

張貼留言