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
https://www.youtube.com/embed/z-xGk9c_eOw Guionista y locutor: Manuel Ignacio López Quintero.Fecha de publicación: 31 de diciembre de 2024.
Ver comentarios
GRACIAS, ES MUY ÚTIL!!!!
Gracias!