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

Convert string into arithmetic operators

我在 table 中存储了一个等式,并希望我的 SQL 到 return 计算值。

例如

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

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

我尝试了以下但没有用:

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

有什么想法吗?

如@Arioch 所述,您必须使用 EXECUTE STATEMENT。不仅仅是把等式放在下面的过程中 CALCULATE

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