分类: 数据库开发技术
2009-04-07 20:16:51
用于整个查询的排序顺序决定了行在结果集中的显示顺序。这也隐含了行在每个分区中的排名。
参数:
< partition_by_clause >
将 FROM 子句生成的结果集划分为要应用 RANK 函数的分区。
< order_by_clause >
确定将 RANK 值应用于分区中的行时所基于的顺序。
返回类型:
bigint
示例:
以下示例按照数量对清单中的产品进行了排名。行集按 LocationID 分区,按 Quantity 排序。
下面是和朋友讨论的一个小例子,不知道对不对,大家指教啊:
一个记录集{1,1,1,4,4,4,7,7,7,7,7,7,7,7,7}
当用 rank between 1 and 10 过滤 {1,1,1,4,4,4,7,7,7,7,7,7,7,7,7}时,就会得到超过十条的记录。 用rownumber between 1 and 10得到的是{1,1,1,4,4,4,7,7,7,7}
也就是说:
用rank就是同样的记录看作是进行一个排名,得到的有可能大于10条。
例如:比赛中第一名1个,第二名1个,第三名3个,下一个人就不是第四名而是第六名
人员 |
名次 |
A |
1 |
B |
2 |
C |
3 |
D |
3 |
E |
3 |
F |
6 |
G |
7 |
H |
8 |
I |
9 |
J |
10 |
人员 |
名次 |
A |
1 |
B |
2 |
C |
3 |
D |
3 |
E |
3 |
F |
6 |
人员 |
名次 |
A |
1 |
B |
2 |
C |
3 |
D |
3 |