CoalEsce(Personen.Nachname + ', ' + Personen.Vorname, Personen.Nachname)
Die Tabelle
Personen
mag zwei Spalten Nachname
und Vorname
enthalten,
Nachname
ist ein Pflichtfeld, Vorname
ist optional. Es soll, falls möglich, Nachname +
Komma + Vorname ausgegeben werden. Verknüpft man die beiden Felder direkt und ist ein Feld Vorname
nicht belegt,
so wird die Verknüpfung zu NULL ausgewertet, also auch kein Nachname ausgegeben. Damit ist der erste Ausdruck für die
CoalEsce-Funktion gleich NULL. Der zweite Ausdruck liefert jedoch einen Eintrag und wird ausgegeben.Das gleiche Ergebnis liefert:
Personen.Nachname + CoalEsce(', ' + Personen.Vorname, '')
Hier wird immer der Nachname plus - bei vorhandenem Vornamen - dieser mit vorgestelltem Komma ausgegeben, ansonsten wird ein Leerstring angefügt.
CoalEsce(Null, Null, Null)
wird zurückgewiesen. Man kann jedoch mit Cast/Convert einen Datentyp erzwingen, indem man als ersten Parameter Null per Cast vom gewünschten Typ deklariert:
CoalEsce(Cast(Null as nvarchar(50)), Null)
gibt den zweiten Null-Wert mit Datentyp nvarchar(50) zurück.
Das obige Beispiel kann auch so gelöst werden, daß mittels der CASE-Verzweigung geprüft wird, ob die Zelle
Vorname
leer ist:
SELECT CASE When A.Vorname Is Null Then A.Nachname Else A.Nachname + ', ' + A.VornameDie CASE-Verzweigung ist jedoch ein sehr mächtiges Werkzeug, so daß in solchen einfachen Fällen wie dem obigen die CoalEsce-Funktion die schnellere Lösung sein dürfte.
FROM Personen As A