Ir al contenido principal

La función NVL2 ok

La función NVL2 provee una mejora a NVL sirve para un propósito similar. Evalúa si una columna o expresión  de cualquier tipo de dato es null o no. Si el primer término no es null, el segundo parámetro de devuelto, sino el tercer parámetro es  devuelto. Difiere de la función NVL ya que esta devuelve el término original si no es null.
La función  toma tres parámetros obligatorios, su sintaxis es:

NVL2(original, ifnotnull, ifnull)

Donde original representa el termino a ser probado, ifnotnull es devuelto si original no es null y ifnull es devuelto si original es null. Los tipos de datos de los parámetros ifnotnull y ifnull deben ser compatibles y no pueden ser de tipo LONG. Deben ser del mismo tipo o deben ser posiblemente convertibles. El tipo de dato devuelto por la función NVL2 es el mismo al parámetro ifnotnull.

Ejemplos:
SELECT department_id, department_name, NVL2(manager_id, manager_id,300) manager_id, location_id
FROM HR.departments;
SELECT employee_id, first_name, last_name, NVL2(commission_pct, commission_pct,0) commission_pct, NVL2(manager_id, manager_id,0) manager_id, NVL2(department_id, department_id,0)
FROM HR.employees;
SELECT NVL2(NULL,'NO ES NULO','ES NULO') FROM DUAL;
SELECT NVL2(1000,'NO ES NULO','ES NULO') FROM DUAL;
SELECT location_id, NVL2(street_address,street_address,'SIN DIRECCION') street_address, NVL2(postal_code,postal_code,'SIN CP') postal_code, city,NVL2(state_province, state_province, 'SIN STATE PROVINCE') state_province, country_id

FROM HR.locations;

Comentarios