我需要对SQL表中保存的值进行算术运算,例如,我想在下一列中将值设为5 * 10
EQUATION VALUE 2+5 7 6+8 14
基于等式,我需要计算值。
如您所知,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