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 statsSe 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.
Desafio
FácilTabelas e colunas disponíveis:
<strong>matches</strong>:<strong>id</strong>,<strong>shots</strong>,<strong>goals</strong>
Para cada partida, retorne:
idconversion:goals * 1.0 / shots, masNULLquandoshotsfor0(useNULLIF)verdict:'win'quandogoals > 0, caso contrário'no goals'(useIIF)
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 statsIIF(cond, a, b) é um atalho para um CASE de dois ramos:
SELECT IIF(goals > 0, 'win', 'no goals') AS verdict
FROM matchesExperimente você mesmo
SELECT id,
-- conversão usando NULLIF
-- veredito usando IIF
FROM matches
ORDER BY id
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.