将字符串转换为算术运算符

时间:2018-10-19 12:08:13

标签: sql firebird arithmetic-expressions

我有一个存储在表中的方程式,希望我的SQL返回计算出的值。

例如

Select replace (c.equation, 'x', 121) 
  from config c where key= 2 

以上返回(8.5-(121-20)/ 100)。我需要计算出的值,即7.49

我尝试了以下操作,但不起作用:

Select cast(replace (g.equation, 'x', 121) as double precision) 
  from config c where key= 2 

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

如@Arioch所述,您必须使用 EXECUTE STATEMENT 。比只是将方程式放在以下程序“计算”中

CREATE OR ALTER PROCEDURE calculate (equation VARCHAR(100))
RETURNS (result VARCHAR(10))
AS
begin
  EXECUTE STATEMENT ('SELECT ' || :EQUATION || ' FROM rdb$database')
  INTO :result;

  suspend;
end