NULL 比較
NULL
是比較時的一個特例。
假設以下資料。
id someVal
----
0 NULL
1 1
2 2
帶有查詢:
SELECT id
FROM table
WHERE someVal = 1
會返回 id 1
SELECT id
FROM table
WHERE someVal <> 1
會返回 id 2
SELECT id
FROM table
WHERE someVal IS NULL
會返回 id 0
SELECT id
FROM table
WHERE someVal IS NOT NULL
將返回 ids 1
和 2
。
如果你希望在 =
,<>
比較中將 NULL計數為值,則必須首先將其轉換為可數資料型別:
SELECT id
FROM table
WHERE ISNULL(someVal, -1) <> 1
要麼
SELECT id
FROM table
WHERE someVal IS NULL OR someVal <> 1
返回 0
和 2
或者你可以更改 ANSI Null 設定。