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
0en lugar deNULLde unLEFT JOIN:COALESCE(SUM(amount), 0) - Elegir el primer campo opcional que no esté vacío:
COALESCE(mobile, home, work)
Desafío
FácilTablas 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:
idlabel:display_namesi está definido, si noemail, si no'unknown'total_spent: suma de losamountde los pedidos del usuario; los usuarios sin pedidos deben mostrar0(noNULL)
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
NULLde agregadosLEFT 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
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.