¿La CASE
declaración de SQL Server (2008 o 2012, específicamente) evalúa todas las WHEN
condiciones o se cierra una vez que encuentra una WHEN
cláusula que se evalúa como verdadera? Si pasa por todo el conjunto de condiciones, ¿eso significa que la última condición que se evalúa como verdadera sobrescribe lo que hizo la primera condición que se evaluó como verdadera? Por ejemplo:
SELECT
CASE
WHEN 1+1 = 2 THEN'YES'
WHEN 1+1 = 3 THEN 'NO'
WHEN 1+1 = 2 THEN 'NO'
END
El resultado es "SÍ" aunque sea el último momento en que la condición debería hacer que se evalúe como "NO". Parece que sale una vez que encuentra la primera condición VERDADERA. ¿Alguien puede confirmar si este es el caso ?
COALESCE()
se traduce en unaCASE
expresión.)