窗口函数在sql';什么是行动顺序?
我在寻找在sql中窗口函数发生的时间点。窗口函数在sql';什么是行动顺序?,sql,sql-server,Sql,Sql Server,我在寻找在sql中窗口函数发生的时间点。 我知道它们可以在SELECT和orderby子句中使用,所以我倾向于认为它们发生在orderby之后,但在优化器决定应该发生时,在TOP窗口函数发生之前。最好通过查看查询计划来理解这一点 这用于解释范围规则(尤其是)它与查询的实际执行方式无关。 显然,窗口功能的规则是: 在处理FROM、WHERE、groupby和HAVING子句之后,会产生影响 该效果与排序依据无关(即使使用了排序依据(选择null))) TOP不影响处理 处理发生在选择DISTIN
我知道它们可以在
SELECT
和orderby
子句中使用,所以我倾向于认为它们发生在orderby
之后,但在优化器决定应该发生时,在TOP
窗口函数发生之前。最好通过查看查询计划来理解这一点
这用于解释范围规则(尤其是)它与查询的实际执行方式无关。
显然,窗口功能的规则是:
- 在处理
、FROM
、WHERE
和groupby
子句之后,会产生影响HAVING
- 该效果与排序依据无关(即使使用了排序依据(选择null)))
不影响处理TOP
- 处理发生在
之前选择DISTINCT
我认为结论是它们在
SELECT
或orderby
中被解析,就像这些子句中的其他表达式一样。它们没有单独的位置。您看过查询执行计划了吗?用您正在使用的数据库标记您的问题。