CoalEsce

Diese Funktion erfordert zwei oder mehrere Ausdrücke und liefert das erstes Argument zurück, welches von NULL verschieden ist. Ansonsten wird NULL zurückgegeben.

Syntax

CoalEsce (<erster Ausdruck>, <zweiter Ausdruck> [, weitere kommagetrennte Ausdrücke])

Parameterliste

<erster Ausdruck>, <zweiter Ausdruck>
Beliebiger Ausdruck. Alle weiteren Ausdrücke müssen von demselben Typ oder implizit in diesen Typ konvertierbar sein.
Rückgabewert
Datentyp, welcher dem gemeinsamen Datentyp in der Argumentliste entspricht
Typ
sonstige Funktion

Beispiele

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.

Hinweise

Mindestens einer der Ausdrücke muß einen Datentyp zurückliefern, eine Nutzung

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.Vorname
FROM Personen As A
Die 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.



Kontaktformular:

Schreiben Sie mir und wir bauen gemeinsam Ihre neue Web-Datenbank!

Die Erläuterungen zum Datenschutz habe ich gelesen und stimme diesen zu.

© 2003-2019 Jürgen Auer, Berlin.