改正: ----------------------------------------------- Select identity(int,1,1)as OrderID,* Into #tmp01 from 表名 Order by ScoreSelect * from #tmp01 ---排名表.
Select id, score, (select count(*) from 表名 where score >= A.score) rank from 表名 A Order by Score desc
-----------------------------------------------
Select identity(int,1,1)as OrderID,* Into #tmp01 from 表名 Order by ScoreSelect * from #tmp01 ---排名表.
(select count(*) from 表名 where score >= A.score) rank from 表名 A Order by Score desc
这样似乎资源消耗太大,查询时间比较长,而且分数相同时排名多计1to 97866(weiLuang):
必须into进表,做成视图可能么?
,(select count(score) from 你的表 where score<=a.score)
from 你的表 a
order by score desc这个可以解决"分数相同时排名多计1"的问题