COALESCE se používá ke kontrole, zda je argument NULL, pokud je NULL, pak má výchozí hodnotu.
zkontroluje hodnoty NOT NULL postupně v seznamu a vrátí první hodnotu NOT NULL.
syntaxe:
COALESCE(Argument list,)
seznam argumentů – mohou to být sloupce tabulky nebo výrazy
COALESCE vrací NULL, pokud všechny jeho argumenty vyhodnotí na null.
jinak vrátí hodnotu prvního nenulového argumentu v daném seznamu výrazů.
každá funkce splynutí musí mít alespoň dva operandy. Buď dva sloupce nebo jeden sloupec s jednou výchozí hodnotou.
je možné mít více sloupců pod koalesce jako níže:
COALESCE(col1, col2, col3, 0)
výše uvedený kód říká, že pokud je col1 null, zkontroluje col2.
pokud je col2 null, zkontroluje col3.
pokud je col3 také null, pak 0 bude výstupem.
pokud coalesce narazí na některý ze sloupců, který nemá hodnotu null, vrátí se hodnota sloupce dotazem. (Priorita zleva doprava)
příklad : 1
pokud země získá nulovou hodnotu, “ US “ bude dodáno Teradata
SELECT COALESCE(Country,'US') as Output
výstup
země | výstup |
---|---|
Itálie | Itálie |
NULL | US |
příklad: 2
následující příklad vrací domácí telefonní číslo jmenované osoby (pokud je přítomno), nebo kancelářský telefon, pokud je HomePhone null, nebo mobilní telefon, pokud je přítomen, a hodnoty domácího i kancelářského telefonu jsou nulové. Vrátí NULL, pokud jsou všechny tři hodnoty null.
SELECT Name, COALESCE (HomePhone, OfficePhone, cellPhone) FROM PhoneDirectory;
pokud je zadána výchozí hodnota, výchozí hodnota bude vrácena, pokud jsou všechna vstupní pole null
SELECT Name, COALESCE (HomePhone, OfficePhone, cellPhone,'No Phone') FROM PhoneDirectory;
příklad: 3
kdykoli kombinujete spojení s neporovnatelnými operátory, jako je | / nebo * nebo +, musíte uzavřít celou funkci COALESCE a její operandy v závorkách.
SELECT (COALESCE(100,0)) * 5;