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 设置。