日期:2014-05-17  浏览次数:20668 次

SQL 如何直接得到 '2+1*3' 的结果!
就是字段是varchar类型的

里面存放不同的公式 如:1+2*3   (1+1)*2+1  (2*(1+1))*2

就是没有固定的格式.....

现在如何直接获取它的值??? 

谢啦!

------解决方案--------------------

DECLARE @s NVARCHAR(40)=N'1+3-4*6'
SET @s='select '+@s
EXEC sp_executesql @s
--    -20

------解决方案--------------------
引用:
谢啦.
是不是在function里面无法使用 exec('select 1+1')
只能在proc中使用吗? 

可以使用,不过你要用一个变量去接收才可以,function分为标量函数与表值函数嘛
------解决方案--------------------

OK?
------解决方案--------------------
DECLARE @sql NVARCHAR(MAX)
DECLARE @formula NVARCHAR(MAX)
SET @sql='select '
SET @formula='1+2*3'
set @sql=@sql+@formula
EXEC(@sql)


------解决方案--------------------
http://blog.csdn.net/htl258/article/details/5588454