SQL COALESCE(): aprende a determinar valores que no son NULL

La función SQL COALESCE() se utiliza para determinar el primer valor de una lista que no es NULL. Se trata, por tanto, de una versión abreviada de la instrucción CASE.

¿Qué es SQL COALESCE()?

En SQL, la palabra NULL hace referencia a datos que no tienen valor. Aparece, por ejemplo, cuando no se llena un campo en una tabla porque aún no se conoce un valor determinado, lo cual no significa necesariamente que el campo no tenga un valor. A primera vista, los valores NULL no son problemáticos, pero si se acumulan en una base de datos pueden hacerla más difícil de entender. La función SQL COALESCE() se utiliza para devolver el primer valor en una lista que no sea NULL.

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 requisitos

La sintaxis de SQL COALESCE() es muy sencilla. Tiene el siguiente aspecto:

COALESCE(valor1, valor2, …, n)
sql

En este caso, necesitas proporcionar al menos dos argumentos. Si todos los argumentos proporcionados tienen el valor NULL, el resultado de la función también será NULL.

Un ejemplo para entender cómo funciona

El funcionamiento es muy sencillo. A continuación, se muestra un código de ejemplo en el que se introducen varios argumentos y se comprueban con el comando SQL SELECT.

SELECT COALESCE(NULL, NULL, NULL, 17, 49, NULL, 13, 15, 14, 15);
sql

En este caso, el resultado es “17”, pues este es el primer valor que es NULL.

La función combinada con otras

La función es mucho más útil cuando se ejecuta en combinación con otras acciones. Imagina una tabla llamada “empleados” que contiene las columnas “Nombre”, “Lugar de residencia” y “Fecha de nacimiento”. Este sería su aspecto:

Nombre Lugar de residencia Fecha de nacimiento
Juan Rodríguez Salamanca 10/04/1967
Sara García Salamanca 27/07/1989
Sergio Zamarriego Sevilla
Martín Morales Salamanca 14/04/2001
María Santos 02/12/2005

En esta tabla, faltan dos entradas: la de fecha de nacimiento para Sergio Zamarriego y la de lugar de residencia para María Santos. Para conocerlas, puedes ayudarte de la función COALESCE() de SQL utilizando este código:

SELECT Nombre,
COALESCE(Lugar de residencia, 'CONSULTAR') AS Lugar de residencia,
COALESCE(Fecha de nacimiento, 'CONSULTAR') AS Fecha de nacimiento
FROM Empleados;
sql

El resultado del mismo sería el siguiente:

Nombre Lugar de residencia Fecha de nacimiento
Juan Rodríguez Salamanca 10/04/1967
Sara García Salamanca 27/07/1989
Sergio Zamarriego Sevilla CONSULTAR
Martín Morales Salamanca 14/04/2001
María Santos CONSULTAR 02/12/2005

Si el valor en “Lugar de residencia” es NULL, se devuelve ‘CONSULTAR’. Lo mismo se ha realizado para “Fecha de nacimiento”.

Funciones similares a SQL COALESCE()

La función SQL COALESCE() es similar a una instrucción CASE y es esencialmente una versión abreviada de la opción de consulta. El código CASE se escribiría así:

CASE
WHEN valor1 IS NOT NULL THEN valor1
WHEN valor2 IS NOT NULL THEN valor2
WHEN … IS NOT NULL THEN …
ELSE n
END
sql

La función ISNULL también es similar a SQL COALESCE(). Sin embargo, ISNULL solo se evalúa una vez y no sigue las reglas de CASE.

Consejo

Con el hosting de SQL Server de IONOS puedes escoger entre MSSQL, MySQL y MariaDB según tus preferencias. Además, podrás beneficiarte de asesoramiento personalizado, sólidas medidas de seguridad y un rendimiento excepcional.

¿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