La función NVL de Oracle

Representación técnica de NVL sustituyendo un valor NULL por un valor por defecto

La función NVL en Oracle permite devolver un valor alternativo cuando una expresión es NULL.

Es útil en consultas donde no queremos mostrar campos vacíos, por ejemplo en informes, listados o cálculos sencillos.

Sintaxis

NVL(expr1, expr2)

Oracle evalúa la función así:

  • Si expr1 no es NULL, devuelve expr1.
  • Si expr1 es NULL, devuelve expr2.

Los tipos de dato de expr1 y expr2 deben ser compatibles. Si Oracle no puede hacer la conversión implícita necesaria, la consulta devolverá error.

Ejemplo con texto

select
  nombre,
  dni,
  nvl(deportefavorito, 'Sin deporte favorito') as deporte_favorito
from
  usuarios;

En este ejemplo, si deportefavorito es NULL, Oracle mostrará la cadena Sin deporte favorito.

Ejemplo con números

select
  producto,
  precio,
  nvl(descuento, 0) as descuento
from
  productos;

Si el campo descuento no tiene valor, la consulta devolverá 0.

Ejemplo con fechas

select
  usuario,
  nvl(fecha_baja, date '2999-12-31') as fecha_baja
from
  usuarios;

Este tipo de ejemplo puede servir cuando necesitamos tratar una fecha nula como una fecha por defecto.

NVL y COALESCE

NVL es una función clásica de Oracle para sustituir valores NULL. Si necesitas evaluar más de dos posibles valores, normalmente es más cómodo usar COALESCE.

Un comentario en “La función NVL de Oracle”

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *