2个回答
展开全部
无论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
用
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
展开全部
可能有多个同学并列第5名的问题.
那你要全部还是多个同学并列第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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询