К сожалению, CASE не работает так в SQL Server.CASE возвращает только одно значение, а присвоение находится за пределами регистра.Кроме того, всякий раз, когда сопоставляется CASE, оператор CASE завершается.Например, рассмотрим этот оператор CASE:
SELECT CASE
WHEN 1 = 1
THEN 1
WHEN 1 = 2
THEN 2
WHEN 2 = 2
Then 22
END
Выходные данные будут равны 1, поскольку после первого совпадения оператор CASE завершается.
Вам потребуется использовать несколько операторов IFвместо вложенных операторов CASE, если вам нужен вывод из более чем одного из CASE, то есть:
IF 1=1 then @result=@result+'CASE 1'
IF 1=2 then @result=@result+'CASE 2'
IF 2=2 then @result=@result+'CASE 3'