Die Funktion SQL IFNULL() wird verwendet, um den Wert eines Ausdrucks zu über­prü­fen. Ist dieser NULL, wird statt­des­sen ein al­ter­na­ti­ver Wert aus­ge­ge­ben. Ist er nicht NULL, zeigt das System seinen ur­sprüng­li­chen Wert an.

Was ist SQL IFNULL()?

In der Struc­tu­red Query Language ist die Funktion SQL COALESCE() ein wichtiges Werkzeug. Wenn Sie al­ler­dings einen be­stimm­ten Wert ausgeben möchten, sofern ein be­stimm­ter Ausdruck leer bzw. NULL ist, können Sie statt­des­sen SQL IFNULL() verwenden. Diese Funktion überprüft den Ausdruck und führt dann eine von zwei möglichen Aktionen durch: Ist der über­prüf­te Wert NULL, wird ein al­ter­na­ti­ver Wert zu­rück­ge­ge­ben, den Sie im Vorfeld bestimmen können. Ist der hin­ter­leg­te Wert nicht NULL, wird hingegen der normale Ausdruck aus­ge­ge­ben. Dies mag in der Theorie noch etwas ver­wir­rend klingen. Mit einigen prak­ti­schen Bei­spie­len erkennen Sie schnell den Mehrwert der Funktion.

vServer / VPS
VPS un­schlag­bar günstig auf Dell En­ter­pri­se Servern
  • 1 Gbit/s, un­be­grenzt Traffic & mehr Cores
  • Min­des­tens 99,99% Ver­füg­bar­keit & ISO-zer­ti­fi­zier­te Re­chen­zen­tren
  • Aus­ge­zeich­ne­ter 24/7 Premium-Support mit per­sön­li­chem Berater

Syntax und Funk­ti­ons­wei­se

Dafür schauen wir uns zunächst die grund­sätz­li­che 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 al­ter­na­ti­ve Ausdruck wird aus­ge­ge­ben, wenn der erste Ausdruck NULL ist.

Beispiele für die Anwendung der Funktion

Wenn Sie die Funk­ti­ons­wei­se von SQL IFNULL() aus­pro­bie­ren 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 ent­spre­chen­de Code:

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

Wenn Sie den Code ausführen, wird die Ausgabe fol­gen­der­ma­ßen aussehen:

Dies ist der erste Ausdruck
sql

Der erste Ausdruck hat einen Wert und somit ver­zich­tet die Funktion auf eine Al­ter­na­ti­ve. 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 Al­ter­na­ti­ve zurück.

Das funk­tio­niert natürlich auch mit Zah­len­wer­ten:

IFNULL(10, 15);
sql

Wir erhalten diese Ausgabe:

10
sql

Ohne hin­ter­leg­ten Wert kommt SQL IFNULL() zum Tragen:

IFNULL(NULL, 15);
sql

Die Ausgabe sieht so aus:

15
sql

Ein Beispiel aus der Praxis

Eine Ein­satz­mög­lich­keit von SQL IFNULL() könnte nun fol­gen­der­ma­ßen aussehen. Wir haben eine Tabelle namens „Lie­fe­run­gen“; diese hat Spalten für Name, Lie­fer­adres­se und Rech­nungs­adres­se:

Name Lie­fer­adres­se Rech­nungs­adres­se
Schmidt Schil­ler­stra­ße 17 Schil­ler­stra­ße 17
Schulz Blumenweg 6 Lan­ge­stra­ße 548
Peters Kleist­stra­ß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 Lie­fer­adres­se angegeben und auf eine Rech­nungs­adres­se ver­zich­tet. Möchten Sie nun dafür sorgen, dass zumindest alle Einträge voll­stän­dig 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 hin­ter­legt ist:

Name Adresse
Schmidt Schil­ler­stra­ße 17
Schulz Blumenweg 6
Peters Kleist­stra­ße 32
Müller Im Winkel 77
Becker Am Rosenhof 41

Al­ter­na­ti­ven zu SQL IFNULL()

Neben der an­ge­spro­che­nen Funktion COALESCE() gibt es weitere Al­ter­na­ti­ven zu SQL IFNULL(). SQL NVL() kon­ver­tiert 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 de­fi­nier­ten 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 pro­fi­tie­ren von Top-Per­for­mance und starken Si­cher­heits­fea­tures.

Zum Hauptmenü