【发布时间】:2010-10-14 21:04:25
【问题描述】:
所以我有一个返回产品列表的简单查询
SELECT Model, CategoryID
FROM Products
WHERE (Model = '010-00749-01')
这会返回
010-00749-01 00000000-0000-0000-0000-000000000000
010-00749-01 NULL
这是正确的,所以我只想要 CategoryID 不是'00000000-0000-0000-0000-000000000000'的产品,所以我有
SELECT Model, CategoryID
FROM Products
WHERE (Model = '010-00749-01')
AND (CategoryID <> '00000000-0000-0000-0000-000000000000')
但这不会返回任何结果。所以我将查询更改为
SELECT Model, CategoryID
FROM Products
WHERE (Model = '010-00749-01')
AND ((CategoryID <> '00000000-0000-0000-0000-000000000000') OR (CategoryID IS NULL))
返回预期结果
010-00749-01 NULL
有人可以向我解释这种行为吗? 微软 SQL Server 2008
【问题讨论】:
-
wiki 文章非常擅长解释 NULL - en.wikipedia.org/wiki/Null_%28SQL%29
-
@Russ Cam - 你应该把这个作为答案发布......
-
我觉得这更像是一个 lmgtfy 答案:)
标签: sql sql-server sql-server-2008 null