如何优化以下 T-SQL
的性能,以便仅调用一次 heavyFunctionCall
函数。
正在寻找表变量、临时表、CTE 或其他内容中最快的选项?
SQL:
select dbo.heavyFunctionCall(a, b, c)
from T
where dbo.heavyFunctionCall(a, b, c) > 10
最佳答案
这样做只会在每一行运行您的函数一次,而不是两次:
SELECT *
FROM (
SELECT dbo.heavyFunctionCall(a, b, c) AS x
FROM T) a
WHERE x > 10
关于t-sql - 重用 WHERE 子句中的字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28694968/