小编典典

在SQL Server中执行列值

sql

我需要对SQL表中保存的值进行算术运算,例如,我想在下一列中将值设为5 * 10

EQUATION    VALUE
2+5          7
6+8          14

基于等式,我需要计算值。


阅读 180

收藏
2021-04-07

共1个答案

小编典典

如您所知,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
2021-04-07