Funciones NVL y COALESCE - AWS Clean Rooms

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Funciones NVL y COALESCE

Devuelve el valor de la primera expresión que no es nula en una serie de expresiones. Cuando se encuentra un valor que no es nulo, las expresiones restantes de la lista no se evalúan.

NVL es idéntica a COALESCE. Son sinónimos. En este tema se explica la sintaxis y se incluyen ejemplos de ambas funciones.

Sintaxis

NVL( expression, expression, ... )

La sintaxis de COALESCE es la misma:

COALESCE( expression, expression, ... )

Si todas las expresiones son nulas, el resultado es nulo.

Estas funciones son útiles cuando se desea devolver un valor secundario si falta un valor primario o es nulo. Por ejemplo, una consulta puede devolver el primero de los tres números de teléfono disponibles: móvil, fijo o trabajo. El orden de las expresiones de la función determina el orden de evaluación.

Argumentos

expresión

Una expresión, como un nombre de columna, que evalúa estados nulos.

Tipo de retorno

AWS Clean Rooms determina el tipo de datos del valor devuelto en función de las expresiones de entrada. Si los tipos de datos de las expresiones de entrada no tienen un tipo común, se devuelve un error.

Ejemplos

Si la lista contiene expresiones de enteros, la función devuelve un entero.

SELECT COALESCE(NULL, 12, NULL); coalesce -------------- 12

Este ejemplo, que es igual al anterior, excepto que usa NVL, devuelve el mismo resultado.

SELECT NVL(NULL, 12, NULL); coalesce -------------- 12

En el siguiente ejemplo, se devuelve un tipo de cadena.

SELECT COALESCE(NULL, 'AWS Clean Rooms', NULL); coalesce -------------- AWS Clean Rooms

En el siguiente ejemplo, se produce un error porque los tipos de datos varían en la lista de expresiones. En este caso, hay un tipo de cadena y un tipo de número en la lista.

SELECT COALESCE(NULL, 'AWS Clean Rooms', 12); ERROR: invalid input syntax for integer: "AWS Clean Rooms"