首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

请问职工高效写入排序结果

2012-03-22 
请教职工高效写入排序结果请教一个问题:我想对10万学生的成绩进行排序,并把名次写入一个字段,怎么做效率最

请教职工高效写入排序结果
请教一个问题:我想对10万学生的成绩进行排序,并把名次写入一个字段,怎么做效率最高!
如果有两个成绩相同则都是第一名,而下一个应该为第三名.
表结构:chengji为成绩,paixu为排序结果
id       chengji     paixu
001     99                   1
002     99                   1
003     98                   3
004     98                   3
005     97                   5

[解决办法]
--SQL2005中的实现
SELECT id,
chengji,
RANK() OVER( ORDER BY Chengji DESC) AS paixu
FROM 表名
[解决办法]
--測試了一下,沒問題
declare @tb table(id varchar(20),chengji int)
insert @tb select
'001 ', 99 union all select
'002 ', 99 union all select
'003 ', 98 union all select
'004 ', 98 union all select
'005 ', 97

--SQL2005中的实现
SELECT id,
chengji,
RANK() OVER( ORDER BY Chengji DESC) AS paixu
FROM @tb

/*
結果:
001991
002991
003983
004983
005975
*/

热点排行