日期:2014-05-17  浏览次数:20843 次

ASP 按票数多少排名
从高到低可以按降序排,但是我想实现的是把排名提取出来,比如票数100,99,80,60,60,按降序排列后,想得到具体排名,可以提取排名1就是1,票数相同的排名并列,这个怎么实现?

------解决方案--------------------
数据库存储是没有序号1,2,3这个概念的,如果你需要显示排名,可以排序的时候弄一个临时表或者表变量,这个临时表有个自增的ID列,你实际输出从临时表输出就行了,当然,这样一条语句没法实现,你可以写成存储过程。

create proc getdatabyscore
as 
begin
create table #t(rankid int identity,id int,score int)
insert into #t(id,score)
select id,score from mytable order by score 

select * from #t

end

当然直接在程序里写也可以
------解决方案--------------------
order by score desc
------解决方案--------------------
加判断条件,如果是需要的就进入新的临时表。进行下一步的排序。