wie man datasätze filtert, die Nullwerte und anderen Status enthalten

Zurzeit laufe ich unter Abfrage in SQL server. Wie wird filtern, dessen checkpointstatus nicht 'Abgeschlossen' ist, einschließlich null . Aber das Problem ist, dass ich nicht in der Lage bin, die datasätze zu erhalten, deren Werte null sind.

  SELECT * FROM TAMS.OrderDetail WHERE CheckPointStatus != 'Completed' 

Ich habe versucht, dies zu beheben:

  SELECT * FROM TAMS.OrderDetail WHERE coalesce(CheckPointStatus, '') != 'Completed' 

Aber einfach nur sicher sein, ist dieser richtige path?

Ihre Lösung:

 SELECT * FROM TAMS.OrderDetail WHERE coalesce(CheckPointStatus, '') != 'Completed' 

funktioniert gut. Eine andere Lösung, die expliziter, einfacher und vielleicht günstiger ist, wäre

 SELECT * FROM TAMS.OrderDetail WHERE CheckPointStatus != 'Completed' OR CheckPointStatus IS NULL 

die alle datasätze entsprechen, die nicht gleich Abgeschlossen sind oder wo der Wert null ist.

Versuchen Sie eine dieser methods:

Methode 1

 SELECT * FROM TAMS.OrderDetail WHERE CheckPointStatus != 'Completed' OR CheckPointStatus IS NULL 

Methode 2

 SELECT * FROM TAMS.OrderDetail WHERE ISNULL(CheckPointStatus,'') != 'Completed' 

Methode 3

 SELECT * FROM TAMS.OrderDetail WHERE coalesce(CheckPointStatus, '') != 'Completed' 

Die dritte ist in der Tat Ihre eigene Frage, was richtig ist