我有一段动态 SQL,其中一部分检索一个依赖于查询的其他结果的函数,但也使用这些结果来评估这个函数。我知道 eval() 在 SQL 中不存在,所以我用什么?
一个非常简化的版本
select reading, functiontype, @result = eval(f.functionformula)
from readingstables r
join functiontable f on (r.functiontype = f.functiontype)
所以基本上(注意这些只是示例公式)我想通过公式类型使用与一组读数相关的函数公式
如果 f.functiontype == 'A' then f.functionformula = reading * reading if f.functiontype == 'B' then f.functionformula = reading * costant / anothervalue //etc etc
实际版本是驱动游标的存储过程中的一大块动态 SQL。我宁愿在一个查询中执行此操作,但怀疑我可能不得不妥协并从第一个动态查询驱动第二个动态查询。