Menu
Coddy logo textTech

NULLIF e IIF

Parte da seção Além do Básico do Journey de SQL da Coddy — lição 4 de 27.

Mais dois helpers condicionais, ambos pequenos e úteis.

NULLIF(a, b) retorna NULL quando a = b, caso contrário, retorna a. O uso clássico é a proteção contra a divisão por zero:

SELECT total / NULLIF(count, 0) AS average
FROM stats

Se count for zero, obtemos NULL em vez de um erro.

IIF(cond, a, b) é um atalho de dois ramos para CASE WHEN cond THEN a ELSE b END. Use-o quando a escolha for binária; use CASE quando houver mais ramos.

challenge icon

Desafio

Fácil

Tabelas e colunas disponíveis:

  • <strong>matches</strong>: <strong>id</strong>, <strong>shots</strong>, <strong>goals</strong>

Para cada partida, retorne:

  • id
  • conversion: goals * 1.0 / shots, mas NULL quando shots for 0 (use NULLIF)
  • verdict: 'win' quando goals > 0, caso contrário 'no goals' (use IIF)

Ordene por id.

Folha de consulta

NULLIF(a, b) retorna NULL quando a = b, caso contrário retorna a. Útil para evitar a divisão por zero:

SELECT total / NULLIF(count, 0) AS average
FROM stats

IIF(cond, a, b) é um atalho para um CASE de dois ramos:

SELECT IIF(goals > 0, 'win', 'no goals') AS verdict
FROM matches

Experimente você mesmo

SELECT id,
       -- conversão usando NULLIF
       -- veredito usando IIF
FROM matches
ORDER BY 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