按成绩排序
来源:互联网 发布:java开发工程师技能 编辑:程序博客网 时间:2024/06/10 03:58
ID
UserName
ClassID
Score
1
Aaa
9802
66
2
Bbb
9801
70
3
Ccc
9801
69
4
ddd
9801
88
设Score 不重复,得到每个 UserName 的 Score排名 2-2.f.1
------------------------------------------------------
SELECT UserName,
(SELECT COUNT(*) FROM Student WHERE Score>=a.Score)
FROM Student a
每查询一条记录时,从表中统计Score大于等于(因为设Score不重复,所以等于指它本身)当前记录的个数. 因此得到排名
当Score有重复值时, 名次也会有重复值,并且会出现名次断号,此时需要进一一步处理 2-2.f.2
SELECT DISTINCT Score INTO #t FROM Student
SELECT a.UserName,b.Index
FROM student a
INNER JOIN
(SELECT Score,
(SELECT COUNT(*) FROM #t WHERE Score>=a.Score) Index
FROM #t a
) b
ON a.Score=b.Score
DROP TABLE #t
这样得到了不间断的排名. 仔细看语句,这里临时表#t没有做任何处理,仅起到了暂存数据的作用, 以此来简化SQL查询语句. 您可以尝试将#t用生成它的那句SELECT查询代替,用一条SQL语句来实现这个功能(如果用了子查询代替#t, 参考我上面对虚表的说法,更容易理解, 临时表换成虚表).
(注.这里不是鼓励使用一条SQL查询完成,而是建议您在学习时这样做,提高自己的熟练程度. 而在实际应用中是否应该用一条语句要具体问题具体分析)
祥见:http://www.idotnet.org/down/mssql.doc
- 按成绩排序
- 按姓名,按成绩排序
- 成绩排序
- 成绩排序
- 成绩排序
- 成绩排序
- 成绩排序
- 成绩排序
- 成绩排序
- 成绩排序
- 成绩排序
- 成绩排序
- 成绩排序
- 成绩排序
- 成绩排序
- 成绩排序
- 成绩排序
- 成绩排序
- 五绝咏中秋
- 转:使用内存文件系统
- URL中文参数传递问题
- HTML及XML语言的转义字符(转)
- 输出数据到Excel表格中
- 按成绩排序
- 使用GridView绑定XmlDocument对象
- 学习函数、事件的注意事项
- 各种语言转义字符
- purify里面的PAR:Both Debug and non-Debug versions of CRT are active 的警告的解决办法
- 网卡问题:Unable to initialize Windows Sockets interface
- PowerDesigner支持自动生成含SQL Server 2000的表和列注释的角本
- 重新温习数据结构一:数组
- C#考试题