Resumen: En este tutorial, aprenderá a usar la función Oracle COALESCE()
para devolver los primeros argumentos no nulos en una lista.
Introduction to the Oracle COALESCE () function
The Oracle COALESCE()
function accepts a list of arguments and returns the first one that evaluates to a non-null value.,
el siguiente ejemplo ilustra La sintaxis de Oracle COALESCE()
función:
En esta sintaxis, el COALESCE()
función devuelve el primer no-null expresión en la lista. Requiere al menos dos expresiones. En caso de que todas las expresiones se evalúen a null, la función devuelve null.,
el siguiente ejemplo devuelve uno porque es el primer argumento no nulo:
RESULT---------- 1
el siguiente ejemplo devuelve null porque todos los argumentos son null:
Return type
Si todos los argumentos tienen el mismo tipo de datos, la función COALESCE()
devuelve un valor de ese tipo de datos.
si los argumentos tienen diferentes tipos de datos, la función COALESCE()
convierte implícitamente todos los argumentos al tipo de datos del primer argumento no nulo., En caso de que la conversión falle, Oracle emite un error.
el siguiente ejemplo devuelve un valor con tipo de carácter porque todos los argumentos son caracteres.,
de manera similar, el siguiente ejemplo devuelve un valor con tipo numérico:
RESULT---------- 1
Sin embargo, el siguiente ejemplo utiliza argumentos de diferentes tipos para la div id=»525ff2d3c3″>
function:
Oracle emitió el siguiente error:
porque la función COALESCE()
intentó convertir el tipo de carácter del tercer argumento a un valor numérico tipo del segundo argumento que resultó en un error.,
evaluación de cortocircuito
la función COALESCE()
utiliza evaluación de cortocircuito. Significa que la función deja de evaluar las expresiones restantes una vez que encuentra que la primera evalúa un valor no nulo.
considere el siguiente ejemplo:
en este ejemplo, la funciónCOALESCE()
solo evaluó la primera expresión porque el resultado de la primera expresión fue dos (1+1). No evaluó la segunda expresión (1/0). Si lo hubiera hecho, Oracle habría emitido la división por cero error.,
ejemplo de Oracle COALESCE ()
vamos a configurar una tabla de muestra para probar.
supongamos que tiene que registrar los contactos de emergencia de los empleados con varios números de teléfono: teléfono del trabajo, teléfono de la casa y teléfono celular. Para hacerlo, cree una nueva tabla llamada emergency_contacts
de la siguiente manera:
las siguientes instrucciones insertan algunos contactos de emergencia en la tabla:
algunos contactos solo tienen un teléfono de trabajo, mientras que otros pueden tener un teléfono doméstico y un teléfono celular o no tienen ningún número de teléfono.,
la siguiente consulta recupera los empleados y sus contactos de emergencia con números de teléfono:
en este ejemplo, usamos la función COALESCE()
para seleccionar el teléfono de casa, el teléfono del trabajo o el teléfono celular si cada uno está disponible. En caso de que no haya números de teléfono disponibles, devolvimos N/A
cadena literal que significa no disponible.,
lo siguiente muestra el resultado de la consulta:
Oracle COALESCE() and CASE expression
puede utilizar el COALESCE()
función en lugar de la expresión más larga CASE
cuando se trata de probar null en múltiples expresiones. La función COALESCE()
es más concisa que una expresión CASE
que implica evaluaciones nulas.,
If you check for NULL in two expressions, the COALESCE()
function is equivalent to the CASE
expression.
For example, the following COALESCE()
function:
is equivalent to:
Likewise,
is equivalent to
Oracle COALESCE() vs. NVL()
The COALESCE()
function is a part of SQL ANSI-92 standard while NVL()
function is Oracle specific.,
en el caso de dos expresiones, la función COALESCE()
y NVL()
parecen ser similares, pero sus implementaciones son diferentes. Vea las siguientes instrucciones:
ambas instrucciones devuelven el mismo resultado que es uno. Sin embargo, la función COALESCE()
solo evalúa la primera expresión para determinar el resultado, mientras que la función NVL()
evalúa ambas expresiones.,
Vamos a ver el siguiente ejemplo:
La declaración anterior devuelve 1, mientras que el siguiente ejemplo se produce un error:
El error es:
Debido a que el NVL()
función evaluó la segunda expresión 1/0
que causa el error.
en este tutorial, ha aprendido a usar la función Oracle COALESCE()
para devolver la primera expresión no nula en una lista de expresiones.
- ¿Fue útil este tutorial?,
- YesNo