Consultas · guía rápida

COALESCE

Devuelve el primer valor no nulo sin modificar la tabla y aprende a elegir una alternativa que no distorsione el significado.

Lectura: 6–8 minEjemplo paso a pasoPráctica con pistas
Contenido de esta guía

Qué significa

COALESCE devuelve el primer argumento que no es NULL. Si todos son NULL, el resultado también es NULL. Sirve para elegir una alternativa dentro del resultado sin modificar los valores guardados.

  • Lee los argumentos de izquierda a derecha.
  • Coloca primero el dato preferido.
  • Usa como alternativa un valor que no distorsione el significado.

Qué problema resuelve

En una lista de clientes puede faltar el email, pero la interfaz necesita mostrar algo comprensible. COALESCE permite devolver el email real cuando existe y un texto alternativo cuando no existe. Esa sustitución es de presentación: la columna sigue conteniendo NULL.

No confundas ausencia con cero: NULL significa que no hay un valor conocido. Sustituirlo por 0, una fecha o una cadena vacía puede cambiar la interpretación del dato.

Sintaxis básica

Estructura
COALESCE(valor_preferido, alternativa_1, alternativa_2, ...)

Ejemplo guiado con datos del proyecto

Clientes utilizados
idnombreemail
1Ana Torresana@example.test
4Diego LópezNULL
SQL
SELECT id, nombre,
       COALESCE(email, 'Sin email') AS email_visible
FROM clientes
WHERE id IN (1, 4)
ORDER BY id;
Resultado esperado
idnombreemail_visible
1Ana Torresana@example.test
4Diego LópezSin email

Cómo funciona

  1. Para Ana, el primer argumento ya contiene un email y se devuelve sin consultar la alternativa.
  2. Para Diego, email es NULL, así que se utiliza 'Sin email'.
  3. El alias email_visible deja claro que es una representación calculada.
  4. Ninguna fila de clientes se modifica.

Error frecuente

Inventar un dato que parece real

Consulta problemática
SELECT COALESCE(fecha_devolucion, CURRENT_DATE)
FROM prestamos;

Una devolución desconocida no equivale a una devolución realizada hoy. Esta expresión puede hacer que un préstamo activo parezca cerrado. Para la interfaz, utiliza un texto inequívoco como “Pendiente” o calcula un estado con CASE.

Comprueba lo aprendido

Básica · apoyo graduado

Muestra un contacto legible

Devuelve nombre y un campo contacto para los clientes 4 y 6. Usa el email cuando exista y “No disponible” cuando sea NULL. Ordena por id.

Compatibilidad y tipos

COALESCE está ampliamente soportado, pero sus argumentos deben poder resolverse a un tipo compatible. PostgreSQL exige un tipo común; SQL Server aplica sus reglas de precedencia y nulabilidad; SQLite devuelve el primer valor no nulo con su tipo dinámico. No mezcles textos, números y fechas sin comprobar el tipo final. Tampoco dependas de efectos secundarios en los argumentos: el modo de evaluación puede variar.

Qué debes recordar

  • Devuelve el primer argumento no nulo.
  • La alternativa debe representar honestamente la ausencia.
  • No modifica la tabla: solo cambia el resultado de la expresión.
  • Los argumentos deben ser compatibles con las reglas de tipos del motor.

Conceptos relacionados

Fuentes técnicas consultadas

Las reglas sobre valores nulos, orden de alternativas y resolución de tipos se comprobaron en estas referencias primarias.