Sql Server、Access数据排名的实现方法(例如:成绩排名)

 更新时间:2009年06月17日 21:34:26   作者:  
在很多时候,我们需要统计数据的排名情况,最常见的是成绩、投票数等等的。
但是,在SQL SERVER 2005 之前,SQL SERVER 2000 并没有提供这个直接的函数供我们使用,同样 ACCESS 也是如此。

下面我们分2种情况,来写出数据排名的实现过程。测试数据如下:

database rank

排名后的结果如下:

sql server rank
Access

复制代码 代码如下:

select name, score, (select iif(isnull(sum(1)), 1, sum(1) + 1) from score_rank where score > a.score) as rank from score_rank a order by score desc

sqlserver
复制代码 代码如下:

select name, score, (select ISNULL(sum(1),0) + 1 from score_rank where score > a.score) as rank from score_rank a order by score desc

对于 SQL SERVER 2005 及更高版本
复制代码 代码如下:

SELECT name, score, RANK() OVER (ORDER BY score DESC) AS [rank], DENSE_RANK() OVER (ORDER BY score DESC) AS [rank1], NTILE(4) OVER(ORDER BY score DESC) AS [rank2] FROM score_rank ORDER BY score DESC;

相关文章

  • 浅谈关系型数据库中如何进行事务管理

    浅谈关系型数据库中如何进行事务管理

    这篇文章主要介绍了浅谈关系型数据库中如何进行事务管理,事务是一组数据库操作,它们必须全部执行或全部回滚,这意味着如果在事务执行期间出现错误,所有的更改都将撤销,数据库将被恢复到事务开始之前的状态,需要的朋友可以参考下
    2023-07-07
  • 通过Qt连接OpenGauss数据库的详细教程

    通过Qt连接OpenGauss数据库的详细教程

    本教程介绍如何通过Qt连接OpenGauss数据库,在openGauss所在的root环境下执行相关步骤,需要Windows下配置ODBC数据源,本文给大家介绍的非常详细,需要的朋友参考下吧
    2021-06-06
  • mssql 区分大小写的详细说明

    mssql 区分大小写的详细说明

    mssql区分大小写,没想到mysql也区分大小写。相关的文章稍后奉献给大家
    2008-03-03
  • Python使用RethinkDB总结

    Python使用RethinkDB总结

    最近一个项目要用到文档数据库,顺便关注了一下 NoSQL 方面的消息。当前几个比较流行的文档数据库引擎有 MongoDB, CouchDB, OrientDB 等,朋友推荐的是 MongoDB 和 RethinkDB
    2014-03-03
  • Navicat打开表的速度慢的问题解决

    Navicat打开表的速度慢的问题解决

    最近使用Navicat打开表或者设计表都很慢,需要等十几秒才能打开,一开始我以为是我电脑老了,没想到新电脑打开也很慢,所以本就给大家分享一下Navicat打开表的速度慢的问题解决方法,需要的朋友可以参考下
    2023-12-12
  • SQL 按特定字段值排序

    SQL 按特定字段值排序

    SQL 按特定字段值排序的代码,有需要的朋友可以参考下。
    2009-08-08
  • 利用reverse索引优化like语句的方法详解

    利用reverse索引优化like语句的方法详解

    这篇文章主要介绍了关于利用reverse索引优化like语句的方法,文中通过图文介绍的很详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-03-03
  • sql学习之CASE WHEN THEN ELSE END的用法

    sql学习之CASE WHEN THEN ELSE END的用法

    这篇文章主要介绍了sql学习之CASE WHEN THEN ELSE END的用法,需要的朋友可以参考下
    2014-06-06
  • DeveloperSharp 高效分页使用详解

    DeveloperSharp 高效分页使用详解

    这篇文章主要为大家介绍了DeveloperSharp 高效分页使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • 一个多表查询的SQL语句

    一个多表查询的SQL语句

    一个多表查询的SQL语句...
    2007-06-06

最新评论