Выражения вроде A=B
не являются скалярным значением. Поэтому, когда вы запускаете следующий запрос, он не работает, и вы получите сообщение об ошибке Incorrect syntax near '='
.
SELECT ('aaa' = 'aaa')
В вашем случае
CASE WHEN table1.field2 = '1'
THEN @CALCULATED_FIELD = table1.field1
ELSE @CALCULATED_FIELD = 'ALL'
END
не является допустимым выражением, и вы можете означает что-то вроде
CASE WHEN table1.field2 = '1'
THEN (CASE WHEN @CALCULATED_FIELD = table1.field1 THEN 1 ELSE 0)
ELSE (CASE WHEN @CALCULATED_FIELD = 'ALL' THEN 1 ELSE 0)
END
Обратите внимание, что вы можете запустить запрос типа
SELECT columnName = 'aaa'
, и он работает как
SELECT 'aaa' AS columnName