表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
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
浙公网安备 33010602011771号