.NET 學習

.NET 學習生活感想... 万事成蹉跎..... 贵在坚持 及时整理自己做过和学过的东西

博客园 首页 新随笔 联系 订阅 管理

有一个表Score,结构如下:

 学号  int primary key
 姓名  nvarchar(20)
 课目成绩  float
 总分  float

查询结果:

 学号  姓名  课目成绩  总分
 2011  程同学  78  432
 2012  王同学  88  498

对总分进行排序,并得到最终的名次,使用如下SQL语句即可:

select *,isnull((select sum(1) from Score where 总分>A.总分),0)+1 as 名次

from Score as A

order by (select sum(1) from Score where 总分>=A.总分)

得出结果:

 学号  姓名  课目成绩  总分  名次
 2012  王同学  88  498
 2011 程同学   78  432  2

(注:总分相同时则显示同样的名次。)

posted on 2009-07-17 09:13  Tonyyang  阅读(750)  评论(0编辑  收藏  举报
欢迎转载,转载请注明出处:http://www.cnblogs.com/Tonyyang/