日期:2014-05-18  浏览次数:20404 次

如何计算自定义公式
我的公式是存放在表的某个字段里面
如何在查询语句把公式的结果计算出来而不是显示公式本身

例如表A中有一列Express
Express
1+232+89*89

如果我直接用select Express from A
那么只能显示出公式本身"1+232+89*89"
而我希望显示的是公式的计算结果8154

有没有办法呢?如果不能的话,能否编一个函数计算公式的结果呢?有没有现成的SQL版本的公式解析器函数啊???

------解决方案--------------------
忘记Return了...修改一下 - -!!

SQL code
create function getResult(@str nvarchar(100))
returns nvarchar(100)
as
begin
  return execute(@str)
end

--执行SQL
select dbo.getResult(Express) from A

------解决方案--------------------
SQL code
declare @str varchar(100)
--set @str='1+232+89*89'
select @str=Express from A
execute('select '+@str+'')

------解决方案--------------------
探讨
SQL codedeclare @str varchar(100)
--set @str='1+232+89*89'
select @str=Express from A
execute('select '+@str+'')

------解决方案--------------------
函数内部除调用扩展存储过程外,不允许用exec.

可以使用sp_oa系列存储过程调用js,或vbs的eval来实现。 也可以自己定公式分析算法。