Cuando estamos realizando consultas contra una base de datos, en nuestro SELECT es posible que estemos usando campos que puedan ser iguales a NULL y que pueden afear nuestras salidas o directamente, crearnos problemas en nuestros desarrollos (por ejemplo porque tratemos de forma lógica lo mismo la cadena vacía y el NULL).
Para resolver estas cuestiones, en Oracle existe la función NVL(elemento, reemplazo) que básicamente hace lo siguiente: si el elemento es igual a NULL, en la salida saca la cadena “reemplazo”.
En MySQL la función tiene otro nombre: IFNULL y su referencia en MySQL es la siguiente:
IFNULL(expr1,expr2)
Si expr1 no es NULL, IFNULL() retorna expr1, de otro modo retorna expr2. IFNULL() retorna un valor numérico o de cadena de caracteres, en función del contexto en que se usa.
mysql> SELECT IFNULL(1,0);
-> 1
mysql> SELECT IFNULL(NULL,10);
-> 10
mysql> SELECT IFNULL(1/0,10);
-> 10
mysql> SELECT IFNULL(1/0,'yes');
-> 'yes'
Un ejemplo que acabo de usar, imaginad una tabla llamada “equipos” con un campo de nombre “comentarios” que en ocasiones es NULL y queremos que aparezca al mostrar el informe como “Vacío” en esos casos en lugar de como “(NULL)”, sólo tendríamos que hacer lo siguiente:
SELECT IFNULL(comentarios, "Vacío") FROM equipos




Pingback: Bitacoras.com