Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 使用 SQL » SQL 函数 » SQL 函数 (P-Z)

 

RANK 函数 [Ranking]

计算一个值在一组值中的排位。如果出现并列的情况,RANK 函数会在排名序列中留出空位。

语法
RANK( ) OVER ( window-spec )
window-spec:请参见下面的“注释”部分
返回值

INTEGER

注释

可以在函数语法中指定 window-spec 的元素(内置),也可以将这些元素与 SELECT 语句中的 WINDOW 子句一并加以指定。作为窗口函数使用时,必须指定 ORDER BY 子句,还可以指定 PARTITION BY 子句,但不能指定 ROWS 或 RANGE 子句。请参见WINDOW 子句中提供的 window-spec 定义。

有关在 SELECT 语句中使用窗口函数的详细信息(包括工作示例),请参见窗口函数

另请参见
标准和兼容性
  • SQL/2003   SQL/OLAP 特性 T612。

示例

以下示例提供了 Utah 和 New York 州雇员薪水的降序排位。注意到第 7 名职员与第 8 名具有相同的薪水因而并列第 7 位。接下来的职员的排位为第 9 位而在排位序列中留下了空位(没有第 8 位排位)。

SELECT Surname, Salary, State,
RANK() OVER (ORDER BY Salary DESC) "Rank"
FROM Employees WHERE State IN ('NY','UT');
Surname Salary State Rank
Shishov 72995.000 UT 1
Wang 68400.000 UT 2
Cobb 62000.000 UT 3
Morris 61300.000 UT 4
Davidson 57090.000 NY 5
Martel 55700.000 NY 6
Blaikie 54900.000 NY 7
Diaz 54900.000 NY 7
Driscoll 48023.690 UT 9
Hildebrand 45829.000 UT 10
Whitney 45700.000 NY 11
... ... ... ...
Lynch 24903.000 UT 19