Saltar la navegación

5.5.- Otras funciones: NVL y DECODE.

Parte de un teclado.
Stockbyte. (Uso educativo nc)


¿Recuerdas que era el valor NULL? Cualquier columna de una tabla podía contener un valor nulo independientemente al tipo de datos que tuviera definido. Eso sí, esto no era así en los casos en que definíamos esa columna como no nula (NOT NULL), o que fuera clave primaria (PRIMARY KEY).

Cualquier operación que se haga con un valor NULL devuelve un NULL. Por ejemplo, si se intenta dividir por NULL, no nos aparecerá ningún error sino que como resultado obtendremos un NULL (no se producirá ningún error tal y como puede suceder si intentáramos dividir por cero).

También es posible que el resultado de una función nos de un valor nulo.

Por tanto, es habitual encontrarnos con estos valores y es entonces cuando aparece la necesidad de poder hacer algo con ellos. Las funciones con nulos nos permitirán hacer algo en caso de que aparezca un valor nulo.

  • NVL(valor, expr1)

    Si valor es NULL, entonces devuelve expr1. Ten en cuenta que expr1 debe ser del mismo tipo que valor.

¿Y no habrá alguna función que nos permita evaluar expresiones? La respuesta es afirmativa y esa función se llama DECODE.

  • DECODE(expr1, cond1, valor1 [, cond2, valor2, ...], default )

    Esta función evalúa una expresión expr1, si se cumple la primera condición (cond1) devuelve el valor1, en caso contrario evalúa la siguiente condición y así hasta que una de las condiciones se cumpla. Si no se cumple ninguna condición se devuelve el valor por defecto que hemos llamado default.

Por ejemplo, si en la tabla USUARIOS queremos un listado de sus correos, podemos pedir que cuando un correo esté a nulo, es decir, no tenga valor, aparezca el texto No tiene correo. 

SELECT NVL(correo, 'No tiene correo') FROM USUARIOS;

Autoevaluación

Pregunta

¿Qué función convierte un número o fecha a cadena de caracteres?

Respuestas

TO_DATE.

TO_CHAR.

DECODE.

TO_NUMBER.

Retroalimentación