A instrução do SQL Server (2008 ou 2012, especificamente) CASEavalia todas as WHENcondições ou sai quando encontra uma WHENclá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 umaCASEexpressão.)