A instrução do SQL Server (2008 ou 2012, especificamente) CASE
avalia todas as WHEN
condições ou sai quando encontra uma WHEN
cláusula avaliada como verdadeira? Se ele passar por todo o conjunto de condições, isso significa que a última condição avaliada como verdadeira substitui o que a primeira condição avaliada como verdadeira fez? Por exemplo:
SELECT
CASE
WHEN 1+1 = 2 THEN'YES'
WHEN 1+1 = 3 THEN 'NO'
WHEN 1+1 = 2 THEN 'NO'
END
O resultado é "SIM", mesmo sendo a última condição em que deve avaliar como "NÃO". Parece que sai depois de encontrar a primeira condição VERDADEIRA. Alguém pode confirmar se é esse o caso .
COALESCE()
é traduzida para umaCASE
expressão.)