SQL ISNULL(): NULL-Werte überprüfen und ersetzen

SQL ISNULL() wird genutzt, um zu überprüfen, ob ein Ausdruck den Wert NULL hat. Ist dies der Fall, ersetzt die Funktion NULL mit einem Ersatzwert desselben Datentyps.

Was ist SQL ISNULL()?

In der Structured Query Language können Sie Tabellen erstellen und diese mit Werten füllen. Wenn Sie darauf verzichten, einem Feld innerhalb der Tabelle einen Wert zuzuweisen, bleibt dieses Feld leer. Es erhält dadurch den Wert NULL, der anzeigt, dass kein tatsächlicher Wert vorliegt. Angenommen, Sie wollen nun dafür sorgen, dass statt NULL ein Ersatzwert berücksichtigt wird. Dazu stellt Ihnen die Sprache unter anderem die Funktion SQL ISNULL() zur Verfügung. Diese überprüft im ersten Schritt, ob ein Ausdruck NULL ist. Ist das der Fall, wertet sie einen festgelegten Ersatzausdruck aus. Ansonsten wird der ursprüngliche Wert berücksichtigt.

vServer / VPS
Vollständig virtualisiert mit Root-Zugriff
  • Bis zu 1 Gbit/s Bandbreite & unbegrenzt Traffic
  • Schneller NVMe-SSD-Speicher
  • Kostenlose Plesk Web Host Edition

Die Syntax der Funktion

Die Funktionsweise von SQL ISNULL() wird verständlich, wenn man einen Blick auf die Syntax wirft:

ISNULL(ausdruck, ersatzwert);
sql

Die Funktion überprüft zunächst, ob der Wert des angegebenen Ausdrucks NULL ist. Ist dies der Fall, wird der Ersatzwert ausgegeben. Andernfalls greift SQL ISNULL() auf den ursprünglichen Ausdruck zurück. Wichtig ist dabei zu beachten, dass „ausdruck“ und „ersatzwert“ denselben Datentyp haben müssen.

Funktionsweise von SQL ISNULL()

SQL ISNULL() findet Anwendung innerhalb eines SQL-Befehls wie SELECT. In den folgenden Beispielen sehen Sie zunächst die Ausgabe, wenn der Wert des Ausdrucks NULL ist, und dann den anderen möglichen Fall. Dies ist der erste Code:

SELECT ISNULL(' ', 'Dies ist der Ersatzwert');
sql

Die Ausgabe wäre in diesem Fall diese:

Dies ist der Ersatzwert
sql

Im nächsten Beispiel wird die Funktion wieder angewendet, stellt aber fest, dass der Ausdruck einen Wert hat und gibt daher ebendiesen aus:

SELECT ISNULL('Dies ist der eigentliche Ausdruck', 'Dies ist der Ersatzwert');
sql

Wir erhalten somit diese Ausgabe:

Dies ist der eigentliche Ausdruck
sql

Beispiel aus der Praxis

Für das nächste Beispiel erstellen wir eine einfache Tabelle namens „Bestellungen“. Diese enthält Spalten für die Kundennummer, den Namen der Kundin oder des Kunden sowie eine Bestellnummer:

Kundennummer Name Bestellnummer
1326 Schmidt 00451
1288 Schulz
1262 Schmidt 00318

Wenn wir nun unsere Tabelle besser strukturieren möchten, können wir SQL ISNULL() nutzen, um den Wert NULL mit dem Platzhalter 00000 zu ersetzen. Der entsprechende Code sieht so aus:

SELECT Kundennummer,
ISNULL(Bestellnummer, 00000), Bestellnummer
FROM Bestellungen;
sql

Führen wir diesen Code aus, erhalten wir die folgende Tabelle:

Kundennummer Name Bestellnummer
1326 Schmidt 00451
1288 Schulz 00000
1262 Schmidt 00318

Kombination mit Aggregatsfunktionen

SQL ISNULL() funktioniert auch in Kombination mit Aggregatsfunktionen wie SQL AVG(), SQL COUNT() oder SUM(). Dieses Zusammenspiel können Sie im folgenden Beispiel kennenlernen. Dafür erweitern wir die Tabelle von oben und fügen eine Spalte für den Bestellwert in Euro hinzu. Die Tabelle sieht nun so aus:

Kundennummer Name Bestellnummer Bestellwert
1326 Schmidt 00451 300
1288 Schulz 00000 NULL
1262 Schmidt 00318 100

Möchten wir nun den Wert NULL mit 100 ersetzen und den gesamten Bestellwert aller Bestellungen ermitteln, nutzen wir dafür die Funktion SUM(). Der Code ist dieser:

SELECT SUM(ISNULL(Bestellwert, 100)
FROM Bestellungen;
sql

Die Ausgabe lautet dadurch:

500
sql

Das System ersetzt den Wert NULL mit 100 und addiert somit 300 + 100 + 100.

Alternativen für SQL ISNULL()

Es gibt weitere Optionen, die SQL ISNULL() ähneln und zu den sogenannten NULL-Funktionen gezählt werden. Dazu gehören SQL COALESCE(), SQL IFNULL() und SQL NVL(). Diese überprüfen ebenfalls, ob ein Wert NULL ist, und können diesen dann mit einem Ersatzwert austauschen.

Tipp

Wählen Sie den passenden Server für Ihre Anforderungen! Mit SQL-Server-Hosting von IONOS haben Sie nicht nur die Wahl zwischen MSSQL, MySQL und MariaDB, sondern profitieren auch von persönlicher Beratung, starken Sicherheitsfeatures und erstklassiger Performance.

War dieser Artikel hilfreich?
Page top