Итак, у меня есть простой запрос, который возвращает список продуктов
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
Может кто-нибудь объяснить мне это поведение?
MS SQL Server 2008