COALESCE – SQL mehrere Felder mit teilweisen Null-Werten zusammenfügen

In MS SQL Server fügt man verschiedene Felder in der Regel so zusammen:

select vorname + ' ' + nachname as name, strasse, plz + ' ' + ort as ortschaft from adresse

Wenn nun in einem der zusammengefügten Felder kein Wert steht, wird NULL als Rückgabewert zurückgegeben.

Hier hilft die Funktion COALESCE

coalesce(ausdruck_1, ausdruck_2[, _ audruck_n])

Die Funktion COALESCE kann eine beliebige Anzahl von Parametern verarbeiten. Die übergebenen Parameter sind typischerweise Ausdrücke, die der Reihe nach ausgewertet werden. Der erste Ausdruck, der einen Wert ungleich NULL zurückliefert, bestimmt das Ergebnis der Funktion. Geben alle Ausdrücke NULL zurück, so ist das Ergebnis der Funktion NULL. Es müssen mindestens 2 Parameter übergeben werden. Ausserdem sollten die darauf achten, dass alle Ausdrücke einen Wert vom selben Datentyp zurückliefern oder zumindest eine implizite Typenumwandlung unterstützen.

Die Funktion COALESCE ist äquivalent mit folgenden CASE-Funktionen


Case
When ausdruck_1 ist not null then ausdruck_1
When ausdruck_2 ist not null then ausdruck_2
-
When ausdruck_n ist not null then ausdruck_n
Else null
end

Somit kann die obere SQL Abfrage so aufgebaut werden:

select coalesce(vorname,'') + ' ' + coalesce(nachname,'') as name, strasse, coalesce(plz,'') + ' ' + coalesce(ort,'') as ortschaft from adresse

Related Posts:

  • No Related Posts