SQL – La función NVL2

Esta función se utiliza para evaluar una expresión.

La función NVL2 tiene la siguiente sintaxis:

NVL2 expr1 g>, expr2, expr3 )

donde

expr1 es la expresión o valor que puede contener un NULL.

expr2 es el valor que retorna si expr1 es no nulo.

xpr3 es el valor que retorna si expr1 es nulo.

La expr1 puede ser cualquier tipo de dato. La expr2 expr3 puede ser cualquier tipo de dato excepto LONG. Si los tipos de datos de expr2 expr3 son diferentes, el servidor de Oracle convierte expr3 al tipo de dato de expr2 antes de realizar la comparación a menos que expr3 sea null. En este caso la conversión no es necesaria.

El tipo de dato del valor retornado siempre será igual al tipo de dato de expr2 , a menos que expr2 sea de tipo carácter, donde el valor retornado será de tipo varchar2.

El siguiente ejemplo ilustra el uso de esta función:

Se requiere conocer el salario mensual que devengan todos los empleados de una empresa X. Existe un subsidio que se les otorga a los empleados que tienen hijos sin importar el salario que devenguen. Para esto se realiza la consulta:

SELECT nombreEmpleado, salarioDevengado, subsidio, (salarioDevengado+subsidio) as salarioTotal

FROM nomina

De esta consulta se obtiene:

nombreEmpleadosalarioDevengadosubsidiosalarioTotal
L. Rodríguez100.000  
M. Reyes200.00050.000250.000
J. Pérez300.00050.000350.000
G. Osorio250.000  

Se utiliza la función NVL2 para que sea calculado el salario total de los empleados.

SELECT nombreEmpleado, salarioDevengado, subsidio,

NVL2 (subsidio, salarioDevengado+subsidio, salarioDevengado) as salarioTotal

FROM Nomina

Lo que nos retorna:

nombreEmpleadosalarioDevengadosubsidiosalarioTotal
L. Rodríguez100.000 100.000
M. Reyes200.00050.000250.000
J. Pérez300.00050.000350.000
G. Osorio250.000 250.000

Escrito por: Sandra P.
tt_sandra at hotmail dot com

Leave a Reply