SQL IFNULL(): Alternative Werte statt NULL-Werte ausgeben

Die Funktion SQL IFNULL() wird verwendet, um den Wert eines Ausdrucks zu überprüfen. Ist dieser NULL, wird stattdessen ein alternativer Wert ausgegeben. Ist er nicht NULL, zeigt das System seinen ursprünglichen Wert an.

Was ist SQL IFNULL()?

In der Structured Query Language ist die Funktion SQL COALESCE() ein wichtiges Werkzeug. Wenn Sie allerdings einen bestimmten Wert ausgeben möchten, sofern ein bestimmter Ausdruck leer bzw. NULL ist, können Sie stattdessen SQL IFNULL() verwenden. Diese Funktion überprüft den Ausdruck und führt dann eine von zwei möglichen Aktionen durch: Ist der überprüfte Wert NULL, wird ein alternativer Wert zurückgegeben, den Sie im Vorfeld bestimmen können. Ist der hinterlegte Wert nicht NULL, wird hingegen der normale Ausdruck ausgegeben. Dies mag in der Theorie noch etwas verwirrend klingen. Mit einigen praktischen Beispielen erkennen Sie schnell den Mehrwert der Funktion.

vServer (VPS) von IONOS

Günstige und starke VPS für Webserver, Mailserver und eigene Anwendungen mit persönlichem Berater und 24/7 Support!

100 % SSD-Speicher
Bereit in 55 Sek.
SSL Zertifikat

Syntax und Funktionsweise

Dafür schauen wir uns zunächst die grundsätzliche Syntax von SQL IFNULL() an. So sieht sie aus:

IFNULL(ausdruck, alternativer_ausdruck);
sql

Der erste Ausdruck ist derjenige, der auf seinen Wert hin überprüft werden soll. Der alternative Ausdruck wird ausgegeben, wenn der erste Ausdruck NULL ist.

Beispiele für die Anwendung der Funktion

Wenn Sie die Funktionsweise von SQL IFNULL() ausprobieren möchten, nutzen Sie diese beiden einfachen Beispiele. Im ersten Versuch wird die Funktion erkennen, dass der Wert des Ausdrucks nicht NULL ist. Dies ist der entsprechende Code:

IFNULL('Dies ist der erste Ausdruck', 'Dies ist die Alternative');
sql

Wenn Sie den Code ausführen, wird die Ausgabe folgendermaßen aussehen:

Dies ist der erste Ausdruck
sql

Der erste Ausdruck hat einen Wert und somit verzichtet die Funktion auf eine Alternative. Anders sieht es im nächsten Beispiel aus:

IFNULL(' ', 'Dies ist die Alternative');
sql

Hier erhalten wir diese Ausgabe:

Dies ist die Alternative
sql

Da der Wert des ersten Ausdrucks NULL ist, greift die Funktion auf die Alternative zurück.

Das funktioniert natürlich auch mit Zahlenwerten:

IFNULL(10, 15);
sql

Wir erhalten diese Ausgabe:

10
sql

Ohne hinterlegten Wert kommt SQL IFNULL() zum Tragen:

IFNULL(NULL, 15);
sql

Die Ausgabe sieht so aus:

15
sql

Ein Beispiel aus der Praxis

Eine Einsatzmöglichkeit von SQL IFNULL() könnte nun folgendermaßen aussehen. Wir haben eine Tabelle namens „Lieferungen“; diese hat Spalten für Name, Lieferadresse und Rechnungsadresse:

Name Lieferadresse Rechnungsadresse
Schmidt Schillerstraße 17 Schillerstraße 17
Schulz Blumenweg 6 Langestraße 548
Peters Kleiststraße 32 NULL
Müller Im Winkel 77 Körnerweg 62
Becker Am Rosenhof 41 Am Rosenhof 41

Ein Kunde bzw. eine Kundin hat also lediglich eine Lieferadresse angegeben und auf eine Rechnungsadresse verzichtet. Möchten Sie nun dafür sorgen, dass zumindest alle Einträge vollständig sind, nutzen Sie dafür SQL IFNULL(). Der passende Code mit dem SQL-Befehl SELECT sieht so aus:

SELECT Name, IFNULL(Rechnungsadresse, Lieferadresse) Adresse
FROM Lieferungen;
sql

Dadurch erhalten wir eine neue Tabelle, in der zumindest für jeden Kunden und jede Kundin eine Adresse hinterlegt ist:

Name Adresse
Schmidt Schillerstraße 17
Schulz Blumenweg 6
Peters Kleiststraße 32
Müller Im Winkel 77
Becker Am Rosenhof 41

Alternativen zu SQL IFNULL()

Neben der angesprochenen Funktion COALESCE() gibt es weitere Alternativen zu SQL IFNULL(). SQL NVL() konvertiert ebenfalls einen Wert NULL in einen Wert Ihrer Wahl. SQL ISNULL() überprüft auch, ob ein Wert NULL ist oder nicht, und ersetzt ihn dann bei Bedarf mit einem definierten Wert.

Tipp

Die perfekte Datenbank für Ihre Ansprüche: Mit SQL-Server-Hosting von IONOS wählen Sie zwischen MSSQL, MySQL oder MariaDB und profitieren von Top-Performance und starken Sicherheitsfeatures.