У меня есть временная таблица, из которой я могу выбрать следующее:
select
testId
,testoutput
from
#testResults
Это приводит к следующим результатам:
ID Result
1 4303
2 -150000*200*3= -90000000
3 4.2016
4 3205000
Второе значение из-за для некоторых из наших тестов выводят расчет, а не значение для удобочитаемости в более поздних отчетах.
Я хотел бы превратить это вычисление обратно в число, которое, я считаю, выполнимо через sp_execute sql ...
Я изменил свой выбор на:
select
testId
,case
WHEN isnumeric(trim(testoutput)) = 1 THEN pr.expectedOutput
WHEN CHARINDEX('=', testoutput) != 0 then
exec sp_executesql N'rtrim(left(testoutput, CHARINDEX(''='', testoutput) - 1))'
END
from
#testOuput
то есть, когда есть знак "=", затем отрежьте то, что осталось от знака, и попытайтесь выполнить на нем c sp_execute sql.
Это вызывает все виды синтаксических ошибок, которые я не могу понять.
Буду очень признателен за любую помощь с синтаксисом sp_execute sql