sql 排序 得出数据列中的排位

来源:百度知道 编辑:UC知道 时间:2024/05/15 16:18:49
我有一个用户表,每个用户都有分数。

我想得到 A 在这个用户表中的排名。 有节省系统资源的办法吗。

我有一种笨方法。按分数倒叙排列。然后查找自己的位置。

有高级的办法吗?

select count(*)+1 as [排名] from [表名]
where [分数]>(select [分数] from [表名] where [用户]='A')

统计分数比A大的所有用户的个数,再加上一,就是A的排名

直接查询所有行顺序号并按顺序号排列:
select 序号=(select count(1) from 表名 a where a.分数>=表名.分数),* from 表名 order by 分数 desc
查询单个用户顺序号:
select 序号=(select count(1) from 表名 a where a.分数>=表名.分数),* from 表名 where 用户名='A'

你的这个办法是最简单也是最有效的