在 SELECT 语句的 ORDER BY 子句中的 OLAP window 函数

您可在不包括 CONNECT BY 子句的那些 SELECT 子句的最终的 ORDER BY 子句中包括 OLAP window 函数。

如果在 ORDER BY 子句中出现 OLAP 函数子句,则在 ORDER BY 求值之前,先求值 OLAP 函数。

一般地说,对于包括一个或多个 OLAP window 函数的简单的 SELECT 语句,数据库服务器遵循下列处理次序:

对于嵌套查询,每一子查询都遵循上述顺序,但将 OLAP window 分区及其 OLAP 函数应用于最里面的子查询的结果集,在其中定义该 OLAP window。

如果 OLAP window 包括 window ORDER 子句,则那个子句,而不是 SELECT 语句的 ORDER BY 子句,定义 window ROW_NUMBER 函数在同一 OLAP window 的分区中分配给这些行的行编号。然而,window ORDER 子句不定义查询结果集的排序,由 SELECT 语句的 ORDER BY 子句定义。

如果 OLAP window 不包括 window ORDER 子句,则以任意的顺序排列 window ROW_NUMBER 函数分配给这些行的行编号,如查询或子查询返回的那样,而不是根据 SELECT 语句的任何 ORDER BY 子句。