Función NVL Oracle

Función NVL Oracle

Un valor nulo es un campo que se ha dejado en blanco o no tiene valor asignado.

Los valores nulos son comunes en bases de datos, especialmente cuando se importan datos externos. Por lo tanto, a menos que una columna contenga una restricción para evitar valores nulos, el motor de la base de datos probablemente usará un valor nulo para un valor faltante.

Aunque los valores nulos son comunes, pueden conducir a problemas de la base de datos, ya que la base de datos no tiene valor para trabajar. Es, por lo tanto, una buena práctica aplicar acciones para manejar los valores nulos en sus consultas.

En esta publicación, aprenderemos cómo convertir los valores nulos en una tabla determinada para contener un valor predeterminado que es menos probable que cause errores de operación en su base de datos.

Función NVL Oracle

Como se mencionó, esta función nos permite sustituir los valores nulos con valores más significativos. La sintaxis de la función se proporciona a continuación:

NVL (expr1, expr2);

La función acepta dos argumentos principales:

Expr1 y expr2 - Este parámetro define el valor a probar para valores nulos. Si el valor de expr1 es nulo, la función devolverá el valor de expr2.

Ambas expresiones pueden tener tipos de datos similares o diferentes. Si los tipos de datos correspondientes difieren, el motor de la base de datos puede realizar una conversión implícita para permitir la compatibilidad con los tipos de datos. Si es imposible convertir los tipos de datos correspondientes, el motor de la base de datos arrojará un error.

Oracle NVL () Función Ejemplo de uso

El siguiente ejemplo demuestra el uso básico de la función nvl ():

Ejemplo 1

Considere el siguiente ejemplo:

seleccione nvl ('hola', 'mundo') de dual;

En el ejemplo anterior, usamos la función nvl () para probar si la cadena 'hola' es un valor nulo. Dado que el valor proporcionado no es nulo, la función devolverá la cadena 'hola'.

Ejemplo 2

Considere el segundo ejemplo que se muestra a continuación:

Seleccione NVL (NULL, 'Mundo') de Dual;

En este caso, dado que la primera expresión es un valor nulo, la consulta devolverá la segunda cadena como se muestra a continuación:

Ejemplo 3

También podemos usar la función nvl () para reemplazar los valores nulos en una tabla de base de datos. Considere la tabla de empleados que se muestra a continuación:

Seleccione First_Name, Last_Name, Correo electrónico, salario, Commission_PCT desde Employee Emp;

Tabla resultante:

Como podemos ver, la columna Commission_PCT contiene valores nulos. Podemos crear una consulta para reemplazar los valores nulos de la columna Commision_PCT con 0, como se muestra en el siguiente ejemplo:

Seleccione First_Name, Last_Name, correo electrónico, salario, NVL (Commission_PCT, 0)
de los empleados EMP;

En la consulta de ejemplo anterior, usamos la función nvl () para probar el valor en la columna Commission_PCT para NULLS. Si hay un valor nulo, devolvemos 0. De lo contrario, devolvemos el valor original.

Esto debería permitirnos reemplazar los valores nulos en la columna con 0, como se muestra en la tabla resultante a continuación:

Podemos usar esto con una declaración de actualización o almacenar el valor resultante en una vista de tabla.

Conclusión

En este tutorial, aprendió cómo usar la función Oracle NVL () para reemplazar los valores nulos con valores predeterminados. Es bueno tener en cuenta que, aunque la función nvl () se parece mucho a la función Counsce (), la función nvl () solo puede devolver un solo valor. Al mismo tiempo, la función CouneSce () puede devolver múltiples valores.

Si está buscando una función que pueda tomar más de dos argumentos sin usar la función Counsce (), considere la función NVL2 ().