Menu
Coddy logo textTech

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 0 em vez de NULL de um LEFT JOIN: COALESCE(SUM(amount), 0)
  • Escolher o primeiro campo opcional não vazio: COALESCE(mobile, home, work)
challenge icon

Desafio

Fácil

Tabelas 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:

  • id
  • label: display_name se definido, caso contrário email, caso contrário 'unknown'
  • total_spent: soma dos amounts dos pedidos do usuário; usuários sem pedidos devem mostrar 0 (não NULL)

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 NULL de agregações LEFT 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
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Além do Básico