SQL-Und NULL-Werten in where-Klausel

Also ich habe eine einfache Abfrage gibt eine Auflistung der Produkte

SELECT     Model, CategoryID
FROM         Products
WHERE     (Model = '010-00749-01') 

Diese gibt

010-00749-01    00000000-0000-0000-0000-000000000000
010-00749-01    NULL

Korrekt ist, so wollte ich nur die Produkte, deren Kategorie-id ist nicht '00000000-0000-0000-0000-000000000000', so habe ich

SELECT     Model, CategoryID
FROM         Products
WHERE     (Model = '010-00749-01') 
AND (CategoryID <> '00000000-0000-0000-0000-000000000000') 

Aber diese kein Ergebnis zurück. Also änderte ich die Abfrage

SELECT     Model, CategoryID
FROM         Products
WHERE     (Model = '010-00749-01') 
AND ((CategoryID <> '00000000-0000-0000-0000-000000000000') OR  (CategoryID  IS NULL))

Gibt das erwartete Ergebnis

010-00749-01    NULL

Kann mir jemand erklären, dies Verhalten zu mir?
MS SQL Server 2008

  • der wiki Artikel ist ziemlich gut erklärt, NULL - en.wikipedia.org/wiki/Null_%28SQL%29
  • Cam - man sollte gepostet habe das als Antwort...
  • Ich fühlte, es war mehr ein lmgtfy Antwort 🙂
InformationsquelleAutor Greg | 2010-10-14
Schreibe einen Kommentar