SQL COALESCE(): So bestimmen Sie Werte, die nicht NULL sind
Die Funktion SQL COALESCE() wird genutzt, um den ersten Wert innerhalb einer Liste zu bestimmen, der nicht NULL ist. Damit ist die Funktion eine verkürzte Version einer entsprechenden CASE-Anweisung.
Dabei benötigen Sie mindestens zwei Argumente. Haben alle Argumente den Wert NULL, wird auch NULL am Ende ausgegeben.
Die Ausgabe lautet in diesem Fall „17“, da dies der erste Wert ist, der nicht NULL ist.
Zwei der Einträge sind hier nicht hinterlegt. Zwar hat Sebastian Schmidt ein Geburtsdatum und Sarah Schmitz einen Wohnort, diese sind uns zu diesem Zeitpunkt aber nicht bekannt. Möchten wir das kenntlich machen, hilft die Funktion SQL COALESCE(). Dies ist der passende Code:
Die entsprechende Ausgabe sieht nun so aus:
Auch die ISNULL-Funktion ähnelt SQL COALESCE(). Im Gegensatz zur hier behandelten Funktion wird ISNULL allerdings nur einmal ausgewertet und folgt auch nicht den Regeln von CASE.
War dieser Artikel hilfreich?
Was ist SQL COALESCE()?
Das Schlüsselwort NULL steht in SQL für Daten, die selbst keinen Wert haben. Ein solcher Fall tritt zum Beispiel ein, wenn Sie in einer Tabelle einen bestimmten Wert (noch) nicht kennen und daher das entsprechende Feld nicht ausfüllen. Dies bedeutet nicht zwangsläufig, dass das entsprechende Feld keinen Wert hat, sondern unter Umständen einfach, dass Sie diesen Wert nicht wissen. Diese NULL-Werte sind zwar auf den ersten Blick nicht schädlich, sammeln Sie sich allerdings in einer Datenbank an, kann es unübersichtlich werden. Die Funktion SQL COALESCE() wird dafür verwendet, den ersten Wert in einer Liste auszugeben, der nicht NULL ist. 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
Syntax und Voraussetzungen
Die Syntax von SQL COALESCE() ist ganz einfach. Sie sieht aus wie folgt:COALESCE(wert1, wert2, …, n)
sqlDie Funktionsweise anhand eines Beispiels
Die grundsätzliche Funktionsweise können Sie schnell anhand eines einfachen Beispiels erkennen. Im folgenden Code geben wir verschiedene Argumente ein und lassen Sie mit Hilfe des SQL-Befehls SELECT überprüfen.SELECT COALESCE(NULL, NULL, NULL, 17, 49, NULL, 13, 15, 14, 15);
sqlDie Funktion in Kombination
Deutlich hilfreicher ist die Funktion, wenn Sie sie in Kombination mit anderen Aktionen ausführen. Dafür stellen wir uns eine Tabelle namens „Mitarbeiter“ vor. Diese enthält die Spalten „Name“, „Wohnort“ und „Geburtstag“. Sie sieht so aus:Name | Wohnort | Geburtstag |
---|---|---|
Peter Müller | Dortmund | 10.04.1967 |
Sabine Schulz | Dortmund | 27.07.1989 |
Sebastian Schmidt | Bochum | |
Martin Becker | Dortmund | 14.04.2001 |
Sarah Schmitz | 02.12.2005 |
SELECT Name,
COALESCE(Wohnort, 'BITTE ERFRAGEN') AS Wohnort,
COALESCE(Geburtstag, 'BITTE ERFRAGEN') AS Geburtstag
FROM Mitarbeiter;
sqlName | Wohnort | Geburtstag |
---|---|---|
Peter Müller | Dortmund | 10.04.1967 |
Sabine Schulz | Dortmund | 27.07.1989 |
Sebastian Schmidt | Bochum | BITTE ERFRAGEN |
Martin Becker | Dortmund | 14.04.2001 |
Sarah Schmitz | BITTE ERFRAGEN | 02.12.2005 |
Ähnliche Funktionen wie SQL COALESCE()
SQL COALESCE() weist Überschneidungen mit einer CASE-Anweisung auf und ist lediglich eine verkürzte Version dieser Abfrageoption. Der CASE-Code würde so aussehen:CASE
WHEN wert1 IS NOT NULL THEN wert1
WHEN wert2 IS NOT NULL THEN wert2
WHEN … IS NOT NULL THEN …
ELSE n
END
sql Tipp
Ein Server nach Ihren Vorstellungen: Mit SQL-Server-Hosting von IONOS nutzen Sie MSSQL, MySQL oder MariaDB und profitieren von persönlicher Beratung, starken Sicherheitsmechanismen und einer herausragenden Performance.