我正在寻找窗口函数在sql中发生的时间。
我知道它们可以在SELECT
和ORDER BY
子句中使用,因此我倾向于认为它们会在ORDER BY
之后但在TOP
答案 0 :(得分:1)
窗口函数在优化程序决定应发生时发生。最好看一下查询计划。
SQL Server advertises the logical processing of queries.(尤其是)用于解释作用域规则。 这与查询的实际执行方式无关。
很明显,窗口函数的规则是:
FROM
,WHERE
,GROUP BY
和HAVING
子句之后的 。ORDER BY
无关(即使您使用order by (select null))
)。TOP
不会影响处理。SELECT DISTINCT
之前进行。我认为结论是,与这些子句中的其他表达式一样,它们在SELECT
或ORDER BY
中进行了解析。他们没有单独的地方。