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
Publicar un comentario