读书人

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

发布时间: 2012-03-22 17:43:57 作者: rapoo

请教职工高效写入排序结果
请教一个问题:我想对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
*/

读书人网 >SQL Server

热点推荐