我需要对SQL表中保存的值进行算术运算,例如,我想要15的下一列中的值为5 * 10
EQUATION VALUE
2+5 7
6+8 14
基于等式,我需要计算值。
答案 0 :(得分:3)
您现在知道,SQL Server没有EVAL()函数。但是,只要使用一些动态SQL,就可以但实际上不建议。
示例
Declare @YourTable Table (id int,[EQUATION] varchar(150))
Insert Into @YourTable Values
(1,'2+5')
,(2,'6+8')
,(3,'datediff(DAY,''2018-01-01'',getdate())') -- Added Just for Fun
Declare @SQL varchar(max) = Stuff((Select ',' + concat('(',ID,',',[EQUATION],')')
From @YourTable A
For XML Path (''))
,1,1,'')
Exec('Select * from (values ' + @SQL + ')A([ID],[Value])')
返回
ID Value
1 7
2 14
3 189
答案 1 :(得分:0)
只需以SELECT
语句的形式执行操作
declare @col1 nvarchar(50) = '10+5'
DECLARE @STATEMENT NVARCHAR(50) = 'SELECT'
DECLARE @COMMAND NVARCHAR(50) = @STATEMENT + ' ' + @COL1
exec sp_executesql @COMMAND
输出:
15