胖在一方

出得厅堂入得厨房的胖子

导航

排名问题

Posted on 2006-11-10 15:49  胖在一方  阅读(245)  评论(0)    收藏  举报
表score ,按成绩进行排名
cID    cName   iScore   MC
---------------------------------
0001    a    100    
0002    b    89    
0003    c    98    
0004    d    90    
0005    e    98    
0006    f    90    
0007    g    92    
0008    h    95    

sql语句
Update score a Set mc=
(
Select mc From
(Select rank() over(Order By iscore Desc) As mc,cid From score Where iscore Is Not Null ) b 
Where b.cid=a.cid
)

结果
cID    cName   iScore  MC
-----------------------------
0001    a    100    1
0002    b    89    8
0003    c    98    2
0004    d    90    6
0005    e    98    2
0006    f    90    6
0007    g    92    5
0008    h    95    4

如果不允许名次并列的话用 dense_rank