Este tutorial de Oracle SQL proporciona explicaciones, ejemplos de la función NVL en Oracle
¿Qué es la función NVL() en Oracle
La función NVL en Oracle es una función de anidamiento que se usa para sustituir valores nulos con ciertos valores
En la sintaxis anterior
expr1 :son los valores de origen o la expresión que pueden contener nulo. Puede proporcionar el nombre de la columna, la función en el nombre de la columna
expr2:es el valor objetivo que se colocará en caso de que se devuelva un valor nulo de expr1
Si expr1 es nulo, entonces NVL devuelve expr2. Si expr1 no es nulo, NVL devuelve expr1.
Puntos importantes a tener en cuenta
(1) Los argumentos expr1 y expr2 pueden tener cualquier tipo de datos. Si sus tipos de datos son diferentes, Oracle Database convierte implícitamente uno en el otro. Si no se pueden convertir implícitamente, la base de datos devuelve un error.
Si expr1 son datos de caracteres, Oracle Database convierte expr2 al tipo de datos de expr1 antes de compararlos y devuelve VARCHAR2 en el juego de caracteres de expr1.
Si expr1 es numérico, Oracle determina qué argumento tiene la precedencia numérica más alta, convierte implícitamente el otro argumento a ese tipo de datos y devuelve ese tipo de datos.
Así que la siguiente declaración tendría éxito
select nvl(num-col ,10) from <table> select nvl(char-col ,'NA') from <table> select nvl(end_date,'01-MAY-18') from <table>
La siguiente declaración haría una conversión implícita
select nvl(char-col ,1) from <table>
La siguiente declaración fallaría
select nvl(end_date,'m/a') from <table> select nvl(user_id,'abc') from <table>
Cómo usar la función NVL()
Esta función es muy útil cuando no queremos devolver valores nulos o en el cálculo numérico, ya que nulo convertiría los valores enteros en nulos
Vamos tome un ejemplo para entenderlo
Tenemos una tabla sales_people que contiene las ventas realizadas por los vendedores, el porcentaje de comisión sobre las ventas, el salario de las personas. Queremos calcular los ingresos mensuales totales de los vendedores. Las ventas pueden tener valores nulos
La declaración sería
select name,(salary + sales*commission/100) Monthy_income from sales_people;
Devolverá valores nulos de todas las personas que no hayan realizado ninguna venta en ese período, ya que el cálculo tendrá valores nulos
Esto se puede arreglar usando la función nvl como
select name,(salary + nvl(sales,0)*commission/100) Monthly_income from sales_people;
Por lo tanto, es claramente muy útil al realizar operaciones matemáticas. La función NVL en Oracle es una función bastante útil y se puede usar en muchos lugares
También lee
Funciones de fecha Oracle SQL
Función NULLIF en Oracle
Instrucción de actualización en Oracle
Función Fusionar en Oracle
Cambiar formato de fecha en Oracle
https://docs .oracle.com/cd/B19306_01/server.102/b14200/functions105.htm