Menu
Coddy logo textTech

COALESCE para NULLs

Parte de la sección Más allá de lo básico del Journey de SQL de Coddy — lección 3 de 27.

COALESCE devuelve el primer argumento que no es NULL:

COALESCE(nickname, first_name, 'Anonymous')

Lee de izquierda a derecha y se detiene en el primer valor no nulo. Es la forma más limpia de proporcionar un valor de respaldo en una consulta, sin necesidad de un CASE.

Usos comunes:

  • Mostrar 0 en lugar de NULL de un LEFT JOIN: COALESCE(SUM(amount), 0)
  • Elegir el primer campo opcional que no esté vacío: COALESCE(mobile, home, work)
challenge icon

Desafío

Fácil

Tablas y columnas disponibles:

  • <strong>users</strong>: <strong>id</strong>, <strong>display_name</strong>, <strong>email</strong>
  • <strong>orders</strong>: <strong>user_id</strong>, <strong>amount</strong>

Devuelve una fila por usuario con:

  • id
  • label: display_name si está definido, si no email, si no 'unknown'
  • total_spent: suma de los amount de los pedidos del usuario; los usuarios sin pedidos deben mostrar 0 (no NULL)

Ordena por id. Pista: un LEFT JOIN de users a orders junto con COALESCE(SUM(...), 0) maneja las filas faltantes.

Hoja de referencia

COALESCE devuelve el primer argumento que no sea NULL:

COALESCE(nickname, first_name, 'Anonymous')

Usos comunes:

  • Valor de visualización de respaldo: COALESCE(mobile, home, work)
  • Reemplazar NULL de agregados LEFT JOIN: COALESCE(SUM(amount), 0)

Pruébalo tú mismo

SELECT u.id,
       -- label vía COALESCE
       -- total_spent vía COALESCE(SUM(...), 0)
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id
ORDER BY u.id
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Más allá de lo básico