ROW_NUMBER 函数唯一地编号其结果中的行。该函数不是秩函数;不过,可在任何可以使用秩函数的情况下使用它,且其行为类似于秩函数。
例如,可在派生表中使用 ROW_NUMBER,以便可以对 ROW_NUMBER 值进行其它限制(甚至可以是连接)。
SELECT * FROM ( SELECT Description, Quantity, ROW_NUMBER( ) OVER ( ORDER BY ID ASC ) AS RowNum FROM Products ) AS DT WHERE RowNum <= 3 ORDER BY RowNum; |
此查询会返回以下结果:
Description | Quantity | RowNum |
---|---|---|
Tank Top | 28 | 1 |
V-neck | 54 | 2 |
Crew Neck | 75 | 3 |
与秩函数一样,ROW_NUMBER 需要使用 ORDER BY 子句。
当窗口的 ORDER BY 子句遇到非唯一表达式时,ROW_NUMBER 会返回非确定性结果;在并列情况下,行顺序是不可预知的。
ROW_NUMBER 用于处理整个分区;因此,不能使用 ROW_NUMBER 函数指定 ROWS 或 RANGE 子句。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |