COALESCE se usa para comprobar si el argumento es NULL, si es NULL entonces toma el valor predeterminado.
Buscará valores NO NULOS secuencialmente en la lista y devolverá el primer valor NO NULO.Sintaxis
:
COALESCE(Argument list,)
Lista de argumentos-Pueden ser columnas de una tabla o expresiones
COALESCE devuelve NULL si todos sus argumentos se evalúan como null.
De lo contrario, devuelve el valor del primer argumento no nulo de la lista de expresiones dada.
Cada función de FUSIÓN debe tener al menos dos operandos. Dos columnas o una columna con un valor predeterminado.
Es posible tener varias columnas bajo coalesce como a continuación:
COALESCE(col1, col2, col3, 0)
El código anterior dice que si col1 es nulo, entonces comprobará col2.
Si col2 es nulo, comprobará si col3.
Si col3 también es nulo, entonces 0 será la salida.
Si coalesce encuentra alguna columna que no tenga valor nulo, la consulta devolverá el valor de columna. (Prioridad de izquierda a derecha)
Ejemplo : 1
Si el país toma el valor NULL, Teradata proporcionará ‘US’
SELECT COALESCE(Country,'US') as Output
Salida
País | Salida |
---|---|
Italia | Italia |
NULL | US |
Ejemplo: 2
El siguiente ejemplo devuelve el número de teléfono de casa de la persona nombrada (si está presente), o teléfono de oficina si el teléfono de casa es nulo, o teléfono celular si está presente y los valores de teléfono de casa y de oficina son nulos. Devuelve NULL si los tres valores son null.
SELECT Name, COALESCE (HomePhone, OfficePhone, cellPhone) FROM PhoneDirectory;
Cuando se proporciona un valor predeterminado, se devolverá el valor predeterminado si todos los campos de entrada son null
SELECT Name, COALESCE (HomePhone, OfficePhone, cellPhone,'No Phone') FROM PhoneDirectory;
Ejemplo: 3
Cada vez que combine COALESCE con operadores sin comparación, como || o * o +, debe encerrar toda la función COALESCE y sus operandos entre paréntesis.
SELECT (COALESCE(100,0)) * 5;