La función SQL IFNULL() se utiliza para comprobar el valor de una expresión. Si es NULL, se muestra un valor al­te­r­na­ti­vo en su lugar. Si no es NULL, el sistema muestra su valor original.

¿Qué es SQL IFNULL()?

En el Stru­c­tu­red Query Language, la función SQL COALESCE() es una he­rra­mie­n­ta im­po­r­ta­n­te. Sin embargo, si quieres obtener un valor es­pe­cí­fi­co 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 co­m­pro­ba­do es NULL, se devuelve un valor al­te­r­na­ti­vo, que se puede es­pe­ci­fi­car de antemano. Si el valor al­ma­ce­na­do no es NULL, se devuelve la expresión original. Puede parecer confuso, pero te lo ex­pli­ca­re­mos con algunos ejemplos prácticos.

Se­r­vi­do­res virtuales (VPS)
VPS rentables en se­r­vi­do­res Dell En­te­r­pri­se
  • 1 Gb/s de ancho de banda y tráfico ilimitado
  • 99,99 % de tiempo de actividad y ce­r­ti­fi­ca­ción ISO
  • Soporte 24/7 ga­la­r­do­na­do y asesor personal

Sintaxis y fu­n­cio­na­li­dad

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

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

Se co­m­pro­ba­rá el valor de la primera expresión. La expresión al­te­r­na­ti­va se emite si la primera expresión es NULL.

Ejemplos de apli­ca­ció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 re­co­no­ce­rá 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 al­te­r­na­ti­va. 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 al­te­r­na­ti­va.

Esto también funciona con valores numéricos:

IFNULL(10, 15);
sql

Obtenemos el siguiente resultado:

10
sql

Sin un valor es­pe­ci­fi­ca­do, 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 fa­c­tu­ra­ción:

Nombre Dirección de entrega Dirección de fa­c­tu­ra­ció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 in­tro­du­ci­do una dirección de entrega y ha omitido la dirección de fa­c­tu­ra­ción. Si quieres ase­gu­rar­te 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

Al­te­r­na­ti­vas a SQL IFNULL()

Además de la función COALESCE() me­n­cio­na­da an­te­rio­r­me­n­te, existen otras al­te­r­na­ti­vas 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 ne­ce­si­da­des: con el Hosting SQL Server de IONOS, puedes elegir entre MSSQL, MySQL o MariaDB y be­ne­fi­ciar­te del máximo re­n­di­mie­n­to y de sólidas funciones de seguridad.

Ir al menú principal