将字符串转换为算术运算符
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
我在 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