我正在做一个项目,该项目必须根据馈送的数据进行一些数学计算
我已经在SQL SERVER中编写了一个触发器来计算该值。我使用REPLACE()将变量替换为值,并得到了以下内容
例如:
Value = 100 +a - (b*10)
a=1
b=2
我得到值= 100 +1-(2 * 10)
预期输出为Value = 81
我使用以下查询:
SELECT REPLACE(REPLACE(Value,'a',1),'b',2) FROM Formula
有没有更好的方法来完成此任务?
答案 0 :(得分:0)
您可以将公式存储为参数化查询表达式,而不用REPLACE
并将值作为参数传递:
DECLARE @value int;
DECLARE @formula nvarchar(MAX) = N'SET @Value = 100 + @a - (@b * 10);';
EXEC sp_executesql @formula, N'@value int OUTPUT, @a int, @b int', @a = 1, @b = 2, @value = @value OUTPUT;
PRINT @value;