select *,(select count(1) from course where score>t.score) as 排名
from course t
where name=姓名

解决方案 »

  1.   

    select name,score,(select count(score) from Course  where score>a.score and a.name<>name)+1 as 排名
    from Course a
      

  2.   

    declare @Course table(name varchar(10),score dec(10,2))insert @Course select 'a1',91
    insert @Course select 'a2',90
    insert @Course select 'a3',89
    insert @Course select 'a4',89
    insert @Course select 'a7',89
    insert @Course select 'a5',89
    insert @Course select 'a6',88
    select name,score,(select count(  score) from @Course  where score>a.score and a.name<>name)+1 as 排名
    from @Course aname       score        排名          
    ---------- ------------ ----------- 
    a1         91.00        1
    a2         90.00        2
    a3         89.00        3
    a4         89.00        3
    a7         89.00        3
    a5         89.00        3
    a6         88.00        7