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.