CASEОценивает ли оператор SQL Server (в частности, 2008 или 2012) все WHENусловия или он завершается, когда находит WHENпредложение, которое оценивается как истинное? Если он проходит через весь набор условий, означает ли это, что последнее условие, оцениваемое как истинное, перезаписывает то, что выполнил первое условие, оцениваемое как истинное? Например:
SELECT
CASE
WHEN 1+1 = 2 THEN'YES'
WHEN 1+1 = 3 THEN 'NO'
WHEN 1+1 = 2 THEN 'NO'
END
Результат - «ДА», хотя последнее условие должно сделать его равным «НЕТ». Кажется, что он выходит, как только находит первое ИСТИННОЕ условие. Может кто-нибудь, пожалуйста, подтвердите, если это так .
COALESCE()переводится вCASEвыражение.)