我有一个存储在表中的方程式,希望我的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
有什么想法吗?
答案 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