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.
- Bis zu 1 Gbit/s Bandbreite & unbegrenzt Traffic
- Schneller NVMe-SSD-Speicher
- Kostenlose Plesk Web Host Edition
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);
sqlDer 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');
sqlWenn Sie den Code ausführen, wird die Ausgabe folgendermaßen aussehen:
Dies ist der erste Ausdruck
sqlDer 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');
sqlHier erhalten wir diese Ausgabe:
Dies ist die Alternative
sqlDa 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);
sqlWir erhalten diese Ausgabe:
10
sqlOhne hinterlegten Wert kommt SQL IFNULL() zum Tragen:
IFNULL(NULL, 15);
sqlDie Ausgabe sieht so aus:
15
sqlEin 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;
sqlDadurch 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.
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.