有没有办法从Oracle和或MySQL中存储的字符串应用数学公式?

col1 | col2 | formula
---------------------
 2   |  2   | col1*col2
 2   |  3   | col1+col2

SELECT * from tbl

result:
col1 | col2 | formula
---------------------
 2   |  2   |   4
 2   |  3   |   5

编辑:每行另一个公式

最佳答案

我想你是想让数据库解析公式字符串。例如,对于Oracle,您可以
向表中添加一列以包含结果
运行update语句,该语句将使用表中列的值和公式的文本调用PL/SQL函数
更新{table}set formula_result=fn_calc_result(col1,col2,formula_列);
PL/SQL函数将通过用这些列的实际值替换“col1”和“col2”等来创建一个字符串。只要公式是一致编写的,就可以使用常规表达式来实现这一点。
然后使用

execute immediate 'select '||{formula}||' from dual' into v_return;
return v_return;

计算结果并返回。
当然,您也可以编写自己的解析器。如果您决定这样做,不要忘记处理操作优先级、括号等。

关于mysql - mysql/oracle存储数学公式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9210865/

10-16 07:28