sql 语句 并列排名的问题

要选出成绩前五名,但要考虑可能有多个同学并列第5名的问题.... 要选出成绩前五名,但要考虑可能有多个同学并列第5名的问题. 展开
 我来答
藏漂生活这几年
推荐于2017-12-15 · TA获得超过681个赞
知道小有建树答主
回答量:409
采纳率:33%
帮助的人:350万
展开全部
无论sqlserver 还是 oracle


rank() 或者 dens_rank() 函数。

select name,score,rank() over(order by score) tt from t;
如果有并列的话 . 他们后边的排序会变成这样的。 根据你的需求选用。
1
2
2
4

select name,score, dens_rank() over(order by score) tt from t;
1
2
2
3

感觉你用地2个,, dense_rank() 然后设置。 让 虚拟的这个排序列tt<=5
unitech2010
2012-06-11 · TA获得超过1062个赞
知道小有建树答主
回答量:1025
采纳率:100%
帮助的人:909万
展开全部
可能有多个同学并列第5名的问题.
那你要全部还是多个同学并列第5名的 其中一个么?
追问
全部并列的.
追答
create table #a (xh int,cj int)

insert #a select '101','100'
insert #a select '102','100'
insert #a select '103','98'
insert #a select '103','99'
insert #a select '104','90'
insert #a select '105','90'
insert #a select '106','90'

select * from #a where cj in (select distinct top 2 cj from #a)
你查询前5名就改为top 5
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式