Database
 sql >> Datenbank >  >> RDS >> Database

So finden Sie Datensätze mit NULL in einer Spalte

Problem:

Sie möchten Datensätze mit NULL in einer Spalte finden.

Beispiel:

Unsere Datenbank hat eine Tabelle namens children mit Daten in vier Spalten:id , first_name , middle_name , und last_name .

id Vorname Zwischenname Nachname
1 Johannes Karl Jackson
2 Tom NULL Thomson
3 Lisa Alice NULL
4 Anne NULL Smith

Suchen wir die ID, den Vornamen und den Nachnamen von Kindern ohne zweiten Vornamen (NULL in Spalte middle_name ). Wir verwenden dafür den Operator IS NULL.

Lösung:

SELECT id,
  first_name,
  last_name
FROM children
WHERE middle_name IS NULL;

Hier ist das Ergebnis:

id Vorname Nachname
2 Tom Thomson
4 Anne Smith

Dies gibt nur Datensätze mit NULL in middle_name zurück , also sind Tom und Anne anwesend, aber nicht John und Lisa, die einen zweiten Vornamen haben.

Diskussion:

Verwenden Sie den IS NULL Operator in einer Bedingung mit WHERE, um Datensätze mit NULL in einer Spalte zu finden. Natürlich können Sie anstelle eines Spaltennamens auch einen beliebigen Ausdruck verwenden und prüfen, ob dieser NULL zurückgibt. Nichts weiter als der Name einer Spalte und der Operator IS NULL werden benötigt (in unserem Beispiel middle_name IS NULL). ). Fügen Sie diese Bedingung in die WHERE-Klausel ein, um Zeilen zu filtern (in unserem Beispiel WHERE middle_name IS NULL). ). Wenn die Bedingung wahr ist, speichert die Spalte eine NULL und diese Zeile wird zurückgegeben. Oben gibt die Abfrage nur zwei Datensätze mit den Kindern Tom und Anne zurück, die keine zweiten Vornamen haben, also die Spalte middle_name speichert NULL.