需求简述:
例如我有这样一个成绩表 编号 姓名 成绩
1 张三 90
2 李四 85
3 王五 100
4 赵六 85
5 汪一 100
6 周九 78
7 何二 56
然后我希望排名次,因为这里有同分,所以必然会出现并列名次。网络上关于并列成绩名次排名有两种方式,其一是这样:
A
名次 姓名 成绩
1 王五 100
1 汪一 100
3 张三 90
4 赵六 85
4 李四 85
6 周九 78
7 何二 56
第二种还是这样:
B
名次 姓名 成绩
1 王五 100
1 汪一 100
2 张三 90
3 赵六 85
3 李四 85
4 周九 78
5 何二 56
SQL语句是一种很实用的技巧,希望和朋友们多交流,现在抛砖引玉把自己的3句SQL语句贴出来共享,抛砖引玉,希望大家多多指教,拍砖的轻点。
对于A方式,比较好办,以Access数据库为例(其他数据库语法大同小异,变化一下对应的即可),可以写成这样:
SELECT e.place AS 名次, d.name AS 姓名, d.mark AS 成绩
FROM [select a.id,count(b.id)+1 as place from sc a left join sc b on a.mark < b.mark group by a.id]. AS e INNER JOIN sc AS d ON e.id = d.id;
同时A方式也可以写成这样,效果等同,不过估计比上面那句效率低点:
SELECT e.place AS 名次, d.name AS 姓名, d.mark AS 成绩
FROM [select a.id,count(iif(b.id is null,null,b.id))+1 as place from sc a left join sc b on a.mark<b.mark group by a.id]. AS e INNER JOIN sc AS d ON e.id = d.id;
而B方式则比较棘手,写了半个钟头才写好.......:
SELECT e.place AS 名次, d.name AS 姓名, d.mark AS 成绩
FROM [select c.id,count(iif(c.mark is null,null,c.mark))+1 as place from (select a.id,b.mark from sc a left join sc b on a.mark < b.mark group by a.id,b.mark)c group by c.id]. AS e INNER JOIN sc AS d ON e.id = d.id;
出处:http://www.i-sx.net/bbs/viewthread.php?tid=157887
分享到:
相关推荐
Oracle Sql语句转换成Mysql Sql语句java 源码,非常简单,只要给定源oracle sql语句地址,和生成目标文件地址运行即可。
XML查询语句转换成SQL语句的实现.pdf
学生成绩管理系统_数据库设计(内含sql查询语句) (2).pdf学生成绩管理系统_数据库设计(内含sql查询语句) (2).pdf学生成绩管理系统_数据库设计(内含sql查询语句) (2).pdf学生成绩管理系统_数据库设计(内含sql查询语句)...
sqlserver自动生成sql语句工具sqlserver转oracle
全面的sql语句sql语句大全sql语句大全sql语句大全sql语句大全sql语句大全sql语句大全sql语句大全sql语句大全sql语句大全
SQL语句查询助手 方便查询简单的sql命令 sql通配符 省去您麻烦的记忆 真正做到想用就用 本软件耗费本人一天时间 就要三个资源分吧 请大家谅解 谢谢大家的支持
access 一次执行多条sql语句! 值得下载看看!资源免费,大家分享!! 更多免费资源 http://ynsky.download.csdn.net/
sql语句命令sql语句命令sql语句命令sql语句命令sql语句命令sql语句命令
关于SQL Server SQL语句查询分页数据的解决方案
SQL查询语句大全SQL查询语句大全SQL查询语句大全SQL查询语句大全SQL查询语句大全SQL查询语句大全SQL查询语句大全SQL查询语句大全SQL查询语句大全
学生成绩管理系统 数据库设计(内含sql查询语句).pdf学生成绩管理系统 数据库设计(内含sql查询语句).pdf学生成绩管理系统 数据库设计(内含sql查询语句).pdf学生成绩管理系统 数据库设计(内含sql查询语句).pdf学生成绩...
Oracle批处理:使用C# 自带Oracle驱动一次执行多条Sql语句
sql语句 与语法sql语句 与语法sql语句 与语法sql语句 与语法sql语句 与语法sql语句 与语法
在数据库维护、管理、查询的时候,经常会遇到一次向DBMS提交多条SQL语句的情况。绝大多数的DBMS都没有提供直观的工具来返回每一条SQL语句的执行时间。 但万能数据库查询分析器却给你提供了这样的便利,它...更多>> 在...
sql语句查询周月年季的最后或第一天
sql语句查询示例 ,一些查询的示例。
SQL语句高级查询
SQL查询语句的练习SQL查询语句的练习SQL查询语句的练习SQL查询语句的练习SQL查询语句的练习SQL查询语句的练习SQL查询语句的练习
可是实现SQL的自动生成,再也不用为调式SQL语句错误而烦恼了!
这个程序是对于dataGrid 进一步的了解.整个程序都是用代码写的.实现了 增 删 改 查 功能.但只用了一条SQL语句.所以.这是一道经典的例题!