我有一个很长的嵌套SELECT查询
CASE WHEN complex_function (field) > x
THEN complex_function (field)
ELSE z END.
我的理解是,上述语法中的complex_function将执行两次,一次是在检查条件时,另一次是在实际赋值时。是否有办法只计算一次以加快执行速度,或者是否由SQL引擎在幕后处理。
这是在嵌套的几层SELECT语句中的子查询中,在非SQL中,我只需要为复杂函数的输出分配一个变量,然后重用它。
我有一个很长的嵌套SELECT查询
CASE WHEN complex_function (field) > x
THEN complex_function (field)
ELSE z END.
我的理解是,上述语法中的complex_function将执行两次,一次是在检查条件时,另一次是在实际赋值时。是否有办法只计算一次以加快执行速度,或者是否由SQL引擎在幕后处理。
这是在嵌套的几层SELECT语句中的子查询中,在非SQL中,我只需要为复杂函数的输出分配一个变量,然后重用它。
2条答案
按热度按时间mpgws1up1#
您可以进一步将计算嵌套在查询的另一个级别中:
new9mtju2#
您可以使用CTE在具有字段参数的表中添加计算字段,然后在JOIN中使用此表而不是原始表