sql >> Database >  >> RDS >> Sqlserver

COALESCE-functie in TSQL

Ik weet niet zeker waarom je denkt dat de documentatie vaag is.

Het doorloopt eenvoudig alle parameters één voor één, en retourneert de eerste die NOT NULL is .

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

Het accepteert vrijwel elk aantal parameters, maar ze moeten van hetzelfde gegevenstype zijn. (Als ze niet van hetzelfde gegevenstype zijn, worden ze impliciet gecast naar een geschikt gegevenstype met behulp van de prioriteitsvolgorde van het gegevenstype.)

Het is als ISNULL() maar voor meerdere parameters, in plaats van slechts twee.

Het is ook ANSI-SQL , waar-as ISNULL() niet.



  1. Oracle RAC en sequenties

  2. Oracle Date datatype, getransformeerd naar 'YYYY-MM-DD HH24:MI:SS TMZ' via SQL

  3. iPhone-emoticons worden in MySQL ingevoegd maar worden lege waarde

  4. Oracle invoegen in tabel2 en vervolgens verwijderen uit tabel1, uitzondering indien mislukt