COALESCE para NULLs
Parte da seção Além do Básico do Journey de SQL da Coddy — lição 3 de 27.
COALESCE retorna o primeiro argumento que não é NULL:
COALESCE(nickname, first_name, 'Anonymous')Lê da esquerda para a direita e para no primeiro valor não nulo. É a maneira mais limpa de fornecer um valor de fallback em uma consulta, sem a necessidade de CASE.
Usos comuns:
- Mostrar
0em vez deNULLde umLEFT JOIN:COALESCE(SUM(amount), 0) - Escolher o primeiro campo opcional não vazio:
COALESCE(mobile, home, work)
Desafio
FácilTabelas e colunas disponíveis:
<strong>users</strong>:<strong>id</strong>,<strong>display_name</strong>,<strong>email</strong><strong>orders</strong>:<strong>user_id</strong>,<strong>amount</strong>
Retorne uma linha por usuário com:
idlabel:display_namese definido, caso contrárioemail, caso contrário'unknown'total_spent: soma dosamounts dos pedidos do usuário; usuários sem pedidos devem mostrar0(nãoNULL)
Ordene por id. Dica: um LEFT JOIN de users para orders mais COALESCE(SUM(...), 0) lida com as linhas ausentes.
Folha de consulta
COALESCE retorna o primeiro argumento não-NULL:
COALESCE(nickname, first_name, 'Anonymous')Usos comuns:
- Valor de exibição alternativo:
COALESCE(mobile, home, work) - Substituir
NULLde agregaçõesLEFT JOIN:COALESCE(SUM(amount), 0)
Experimente você mesmo
SELECT u.id,
-- rótulo via COALESCE
-- total_spent via 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 lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.