Qué significa
COALESCE evalúa sus argumentos de izquierda a derecha y devuelve el primero que no sea NULL. Si todos son NULL, el resultado también es NULL. Es útil para presentar un valor alternativo, combinar columnas equivalentes o evitar que una operación posterior reciba un valor nulo.
Qué problema resuelve
Un dato ausente no siempre debe mostrarse como una celda vacía. En un listado de clientes puede ser útil indicar “Sin email”, pero ese texto solo cambia el resultado de la consulta: no completa el dato almacenado. COALESCE ayuda a presentar y calcular; no corrige por sí mismo la calidad de los datos.
Apréndelo en contexto: este término se relaciona directamente con Trabajar con valores NULL.
Sintaxis básica
COALESCE(valor1, valor2, valor3, ...)Ejemplo guiado
| id | nombre | |
|---|---|---|
| 1 | Ana | ana@ejemplo.es |
| 3 | Marta | NULL |
Lee primero la consulta e intenta predecir el resultado:
SELECT nombre,
COALESCE(email, 'Sin email') AS email_visible
FROM clientes
WHERE id IN (1, 3)
ORDER BY id;| nombre | email_visible |
|---|---|
| Ana | ana@ejemplo.es |
| Marta | Sin email |
Qué ocurre paso a paso
- Para Ana,
emailcontiene un valor, así que COALESCE lo devuelve y deja de evaluar alternativas. - Para Marta,
emailes NULL y la expresión utiliza el textoSin email. - El alias
email_visibledescribe la columna calculada. - La tabla original no cambia: el email de Marta sigue siendo NULL.
Error frecuente
Sustituir NULL sin pensar qué significa
SELECT COALESCE(fecha_devolucion, CURRENT_DATE) FROM prestamos;Esta sustitución puede hacer parecer que un libro se devolvió hoy cuando en realidad sigue prestado. El valor alternativo debe representar de forma honesta la ausencia. Para mostrar estado sería más claro utilizar CASE o un texto como “Pendiente de devolución”.
Mini práctica
Aplica el concepto
Muestra nombre y email de todos los clientes. Cuando el email sea NULL, devuelve el texto “No disponible” con el alias contacto.
Solución razonada
SELECT nombre,
COALESCE(email, 'No disponible') AS contacto
FROM clientes;La expresión modifica únicamente la representación del resultado. Si necesitas distinguir entre dato ausente y dato real, conserva un texto inequívoco y no utilices un valor que pudiera confundirse con información verdadera.
Compatibilidad y matices
COALESCE forma parte del SQL ampliamente soportado. Los argumentos deben poder resolverse a un tipo compatible; mezclar, por ejemplo, números y textos puede producir conversión, error o un tipo inesperado según el motor. También conviene recordar que sustituir NULL por cero cambia el significado: “sin dato” y “valor igual a cero” no son equivalentes.
Recuerda
- Devuelve el primer argumento que no sea NULL y permite definir un valor alternativo en el resultado de una consulta.
- Comprueba siempre los datos de entrada y el resultado esperado.
- Cuando el comportamiento dependa del motor, consulta su documentación oficial.
Conceptos relacionados
Fuentes técnicas consultadas
Estas fuentes se utilizaron para comprobar la definición y los matices técnicos. El contenido de esta página está redactado de forma original para el aprendizaje.