Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

COALESCE-Funktion in TSQL

Ich bin mir nicht sicher, warum Sie denken, dass die Dokumentation vage ist.

Es geht einfach alle Parameter nacheinander durch und gibt den ersten zurück, der NOT NULL ist .

COALESCE(NULL, NULL, NULL, 1, 2, 3)
=> 1


COALESCE(1, 2, 3, 4, 5, NULL)
=> 1


COALESCE(NULL, NULL, NULL, 3, 2, NULL)
=> 3


COALESCE(6, 5, 4, 3, 2, NULL)
=> 6


COALESCE(NULL, NULL, NULL, NULL, NULL, NULL)
=> NULL

Es akzeptiert so ziemlich jede Anzahl von Parametern, aber sie sollten den gleichen Datentyp haben. (Wenn sie nicht denselben Datentyp haben, werden sie implizit in einen geeigneten Datentyp umgewandelt, wobei die Datentyp-Rangfolge verwendet wird.)

Es ist wie ISNULL() aber für mehrere Parameter, anstatt nur zwei.

Es ist auch ANSI-SQL , wobei ISNULL() nicht.