SQL IFNULL(): salida de valores alternativos en lugar de valores NULL

La función SQL IFNULL() se utiliza para comprobar el valor de una expresión. Si es NULL, se muestra un valor alternativo en su lugar. Si no es NULL, el sistema muestra su valor original.

¿Qué es SQL IFNULL()?

En el Structured Query Language, la función SQL COALESCE() es una herramienta importante. Sin embargo, si quieres obtener un valor específico si una expresión está vacía o en NULL, puedes utilizar SQL IFNULL() en su lugar. Esta función comprueba la expresión y realiza una de las dos acciones posibles: si el valor comprobado es NULL, se devuelve un valor alternativo, que se puede especificar de antemano. Si el valor almacenado no es NULL, se devuelve la expresión original. Puede parecer confuso, pero te lo explicaremos con algunos ejemplos prácticos.

Servidores virtuales VPS
Virtualización completa con acceso root
  • Ancho de banda de hasta 1 Gb/s y tráfico ilimitado
  • Almacenamiento SSD NVMe ultrarrápido
  • Incluye: edición Plesk Web Host

Sintaxis y funcionalidad

Veamos primero la sintaxis básica de SQL IFNULL():

IFNULL(expresión, expresión_alternativa);
sql

Se comprobará el valor de la primera expresión. La expresión alternativa se emite si la primera expresión es NULL.

Ejemplos de aplicación de la función

Si quieres probar cómo funciona SQL IFNULL(), utiliza estos dos sencillos ejemplos. En el primer intento, la función reconocerá que el valor de la expresión no es NULL:

IFNULL('Esta es la expresión', 'Esta es la alternativa');
sql

Cuando ejecutes el código, el resultado tendrá este aspecto:

Este es el primer valor
sql

La primera expresión tiene un valor y, por lo tanto, la función no utiliza una alternativa. Sin embargo, en el siguiente ejemplo:

IFNULL(' ', 'Esta es la alternativa');
sql

Obtenemos el siguiente resultado:

Esta es la alternativa
sql

Dado que el valor de la primera expresión es NULL, la función utiliza la alternativa.

Esto también funciona con valores numéricos:

IFNULL(10, 15);
sql

Obtenemos el siguiente resultado:

10
sql

Sin un valor especificado, la función SQL IFNULL() hace su trabajo:

IFNULL(NULL, 15);
sql

El resultado es:

15
sql

Un ejemplo práctico

Un posible uso de SQL IFNULL() podría ser el siguiente. Tenemos una tabla llamada “Entregas”; ésta tiene columnas para nombre, dirección de entrega y dirección de facturación:

Nombre Dirección de entrega Dirección de facturación
Santos 123 Maple Street 123 Maple Street
Johnson 456 Oak Avenue 789 Pine Boulevard
Brown 321 Birch Road NULL
Davis 987 Cedar Lane 654 Elm Street
Martínez 741 Rosewood Drive 741 Rosewood Drive

Un cliente solo ha introducido una dirección de entrega y ha omitido la dirección de facturación. Si quieres asegurarte de que todas las entradas estén completas, utiliza SQL IFNULL(). El código con el comando SQL SELECT sería el siguiente:

SELECT Nombre, IFNULL(Dirección de facturación, Dirección de entrega) Dirección  
FROM Entregas;
sql

Esto nos da una nueva tabla en la que se almacena al menos una dirección para cada cliente:

Nombre Dirección
Santos 123 Maple Street
Johnson 456 Oak Avenue
Brown 321 Birch Road
Davis 987 Cedar Lane
Martínez 741 Rosewood Drive

Alternativas a SQL IFNULL()

Además de la función COALESCE() mencionada anteriormente, existen otras alternativas a SQL IFNULL(). SQL NVL() también convierte un valor NULL a un valor de tu elección. SQL ISNULL() comprueba si un valor es NULL o no y luego lo sustituye por un valor definido si es necesario.

Consejo

La base de datos perfecta para tus necesidades: con el Hosting SQL Server de IONOS, puedes elegir entre MSSQL, MySQL o MariaDB y beneficiarte del máximo rendimiento y de sólidas funciones de seguridad.

¿Le ha resultado útil este artículo?
Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrarle publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación. Si continua navegando, consideramos que acepta su uso. Puede obtener más información, o bien conocer cómo cambiar la configuración de su navegador en nuestra. Política de Cookies.
Page top