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.
- 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)
sqlEn 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);
sqlEn 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;
sqlEl 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
sqlLa 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.
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.