NULL-Werte
Daten ändern
Was ist NULL?
NULL bedeutet, dass ein Wert fehlt oder unbekannt ist. Es ist kein leerer Text und keine Null. Wenn beim Anlegen eines Kunden kein Umsatz bekannt ist, kann das Feld NULL sein.
NULL ist nicht 0 und nicht ''
0ist eine bekannte Zahl (z. B. Umsatz von genau 0 €).''ist eine bekannte, aber leere Zeichenkette.NULLheißt: „wir wissen den Wert nicht“.
Auf NULL prüfen
Mit normalen Vergleichsoperatoren (=, <>) kannst du NULL nicht testen – ein Vergleich mit NULL ist nie wahr. Verwende stattdessen IS NULL und IS NOT NULL:
SELECT Name FROM Kunden WHERE Umsatz IS NULL;
Und umgekehrt – nur Kunden mit gesetztem Umsatz:
SELECT Name FROM Kunden WHERE Umsatz IS NOT NULL;
Beispiel
| KundenID | Name | Umsatz |
|---|---|---|
| 1 | Müller GmbH | 12500 |
| 2 | Schmidt AG | NULL |
| 3 | Dupont SARL | 0 |
WHERE Umsatz IS NULL liefert hier nur die Schmidt AG. WHERE Umsatz = 0 liefert nur Dupont SARL.
Stolperfalle
WHERE Umsatz = NULL liefert nie eine Zeile – auch nicht für tatsächlich leere Felder. Außerdem ignorieren Aggregatfunktionen wie SUM() oder AVG() NULL-Werte, und in Berechnungen „infiziert“ NULL das Ergebnis: Umsatz + 100 ergibt NULL, wenn Umsatz selbst NULL ist. Mit COALESCE(Umsatz, 0) kannst du einen Ersatzwert setzen.