MS SQL查询时自动给数据排名:RANK(),DENSE_RANK()
来源:互联网 发布:mac os server工具 编辑:程序博客网 时间:2024/05/17 02:53
相信每人在开发应用过程中都遇到过这样的需求:针对所查询数据的某列进行排名。一般情况下我们有2种选择:
1.将数据查询出来,在显示数据的时候给每条数据增加排名数字;
2.使用SQL函数在查询时自动给数据排名。
更多时候,我们推荐,在性能允许的情况下,让数据库承担它力所能及的逻辑处理,而让程序更专注于业务。这里我就把如何为使用SQL给数据排名。相信大家对ROW_NUMBER()函数并不陌生,在分页存储过程中应该没有少用,当然,它并不能满足我们的排名需求,但它的姊妹函数:RANK(),DENSE_RANK()函数却可以满足我们的需求。
RANK(),DENSE_RANK()的用法与ROW_NUMBER()相同,后面均接OVER():
--按分数降序对成绩单进行排名
SELECT RANK() OVER(ORDER BY Mark DESC) AS Rank, * FROM SchoolRecordCard WITH(NOLOCK)
SELECT DENSE_RANK() OVER(ORDER BY Mark DESC) AS Rank, * FROM SchoolRecordCard WITH(NOLOCK)
如此,我们既在查询时使用排名函数自动对数据进行排名。但2者的排名规则却不相同:
DENSE_RANK():返回结果集分区中行的排名,在排名中没有任何间断。行的排名等于所讨论行之前的所有排名数加一。
RANK():返回结果集的分区内每行的排名。行的排名是相关行之前的排名数加一。
也就是说,使用Rank()函数进行排名,假如排在第一,第二位的同学分数相同,则他们并列第一,他们下一位则是第三。而使用Dense_Rank()排名是不间断的,既第一第二位同学并列第一,第三位同学是第二。我们可以根据需求所提的排名规则来相应地选用排名函数。
- MS SQL查询时自动给数据排名:RANK(),DENSE_RANK()
- MS SQL 2005 四个排序函数ROW_NUMBER、RANK、DENSE_RANK 和 NTILE简介用法/结果排名排序
- 0021 Ms SQL 2005 四个排名函数(row_number、rank、dense_rank 和 ntile)的比较
- sql 排名函数 rank() , row_number() , dense_rank() over
- SQL Server 2005/2008 排名函数 ROW_NUMBER ,RANK,DENSE_RANK 比较
- Sql Server2005 4个排名函数: RANK(),DENSE_RANK(),ROW_NUMBER(),NTILE()
- SQL SERVER排名函数RANK,DENSE_RANK,NTILE,ROW_NUMBER
- sql server 排名函数 row_number,rank,dense_rank和ntile
- Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介
- Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介
- Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介
- 实例数据对比SQL中的ROW_NUMBER()、RANK()、DENSE_RANK()、NTILE(),一目了然
- rank,dense_rank,row_number:实现排名策略
- Oracle rank和dense_rank排名函数
- 排名分析函数 rank(),dense_rank(),row_number()
- SQLSERVER排名函数RANK,DENSE_RANK,NTILE,ROW_NUMBER
- Oracle rank和dense_rank排名函数
- SQL Server2005 四个排名函数(row_number、rank、dense_rank和ntile)的比较
- linux开发 -- 命令行参数解析 getopt
- Java有能力抵挡LAMP的进攻吗?
- 基于创建型模式的“迷宫”构造
- CBR会议论文集和书籍(Proceedings and Books)
- swing 嘴尖介绍 ~~转帖
- MS SQL查询时自动给数据排名:RANK(),DENSE_RANK()
- VB常用代码总结(二)【转】
- VB常用代码总结(一)【转】
- 获取设备句柄的两种方法
- delhpi 数据库中的图像存储和读取
- 一个简单的加密解密算法
- ZJU 2604 Little Brackets - 动态规划 Catalan数变形
- Embedded Linux System Design and Development
- 腾讯首席架构师:互联网应用向移动终端转移