SQL SERVER如何提取前5条到前10条的纪录

 我来答
badkano
2015-12-17 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885359
团长

向TA提问 私信TA
展开全部

可以通过row_number函数来实现。

如test表中数据如下:

现在要查询按年龄由大到小的第5-10位的人员名单,可用如下语句:

select t.id,t.name,t.age 
from
(select row_number() over(order by age desc) as rn,id,name,age from test) t
where rn between 5 and 10

查询结果:

势星海45
2012-11-06 · 超过28用户采纳过TA的回答
知道答主
回答量:181
采纳率:0%
帮助的人:79.6万
展开全部
select top 10 * from 表 where id in (select top 5 id from titles) order by id desc

这句的意思是找前十条数据的id为titles表的前五条id的数据,按降序排列
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
frogley
2012-11-06 · TA获得超过1854个赞
知道小有建树答主
回答量:1008
采纳率:50%
帮助的人:1069万
展开全部
先取出前10条,将这10条按倒序排列,再取出前5条
select top 5 * from (select top 10 * from 表名 order by id) a order by id desc

SQL server 2005以后,也可以使用row_number()函数
追问
谢谢,你这个是对的,请你帮我看看我先前在网上看的这句,是啥意思?
select top 10 * from 表 where id in (select top 5 id from titles) order by id desc
追答
它这个跟我的思路是一样的。不过它把10 和 5 搞反了...
像这样就对了:
select top 5 * from 表名 where id in (select top 10 id from 表名 order by id) order by id desc
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dllgdx_2000
2012-11-06 · TA获得超过922个赞
知道小有建树答主
回答量:1202
采纳率:0%
帮助的人:747万
展开全部
select XX
from 表名
where 条件
limit 5 to 10
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式