在网上看到一个提问,对于一个表,只有两个字段(姓名、成绩),怎么样用sql实现排名
一个网友的回答是这样的回答的,看了之后才发觉自己sql方面有很多技巧没有掌握
declare @Course table(name varchar(100),成绩 int)
insert into @Course
select 'a',99
union all
select 'b',66
union all
select 'c',88
--1
select * from @course
--2
select (select 1+count(name) from @Course where 成绩>t.成绩) as 名次,name,成绩
from @Course t
--3
select * from (
select (select 1+count(name) from @Course where 成绩>t.成绩) as 名次,name,成绩
from @Course t
) tmp
这样就可以实现sql对一张表的排名了