Я хочу выполнить арифметическую операцию, основанную на моих значениях столбца. Рассмотрим следующий пример
CREATE TABLE #test
  (
     cont_sal    INT,
     check_value INT,
     operator    VARCHAR(50)
  )
INSERT #test
VALUES (10,20,'+'),
       (20,10,'+'),
       (10,20,'-'),
       (20,10,'-') 
Ожидаемый результат:
cont_sal    check_value result
--------    ----------- ------
10          20          30
20          10          30
10          20          -10
20          10          10
Я могу сделать это с помощью оператора CASE.
SELECT cont_sal,
       check_value,
       CASE
         WHEN operator = '+' THEN cont_sal + check_value
         when operator = '-' THEN cont_sal - check_value
       END result
FROM   #test 
Но есть ли способ сделать это динамически. Оператор может быть чем-то вроде /, %, *. Что-то вроде этого
DECLARE @sql NVARCHAR(max)=''
SET @sql = 'select cont_sal ' + 'operator'
           + ' check_value from #test '
--PRINT @sql
EXEC Sp_executesql
  @sql 
Что явно не работает, говоря
Msg 102, уровень 15, состояние 1, строка 1 Неверный синтаксис рядом 'Check_value'.