COALESCE viene utilizzato per verificare se l’argomento è NULL, se è NULL, prende il valore predefinito.
Controllerà i valori NOT NULL in sequenza nell’elenco e restituirà il primo valore NOT NULL.
Sintassi:
COALESCE(Argument list,)
Elenco argomenti – Possono essere colonne di una tabella o espressioni
COALESCE restituisce NULL se tutti i suoi argomenti valutano null.
Altrimenti, restituisce il valore del primo argomento non nullo nell’elenco di espressioni specificato.
Ogni funzione COALESCE deve avere almeno due operandi. Due colonne o una colonna con un valore predefinito.
È possibile avere più colonne sotto coalesce come di seguito:
COALESCE(col1, col2, col3, 0)
Il codice sopra dice che se col1 è null allora controllerà col2.
Se col2 è null, controllerà la presenza di col3.
Se col3 è anche null, allora 0 sarà l’output.
Se coalesce incontra una delle colonne con valore non null, il valore della colonna verrà restituito dalla query. (Da sinistra a destra priorità)
Esempio : 1
Se il paese prende il valore NULL, ‘NOI’, che verrà fornito da Teradata
SELECT COALESCE(Country,'US') as Output
Output
Paese | Output |
---|---|
Italia | Italia |
NULL | NOI |
Esempio: 2
L’esempio seguente restituisce il numero di telefono di casa di un individuo di nome (se presente), o il telefono di ufficio se HomePhone è null o Cellulare, se presenti, e a casa e in ufficio telefono valori null. Restituisce NULL se tutti e tre i valori sono null.
SELECT Name, COALESCE (HomePhone, OfficePhone, cellPhone) FROM PhoneDirectory;
Quando viene fornito un valore predefinito, il valore predefinito verrà restituito se tutti i campi di input sono null
SELECT Name, COALESCE (HomePhone, OfficePhone, cellPhone,'No Phone') FROM PhoneDirectory;
Esempio:3
Ogni volta che si combina COALESCE con operatori non comparativi, come || o * o +, è necessario racchiudere tra parentesi l’intera funzione COALESCE e i relativi operandi.
SELECT (COALESCE(100,0)) * 5;