SQL中排序后从第10个数据开始取5个数据怎么写?

selecttop5*fromtableorderbyscoredesc是排序后取前5个,我现在希望排序后取从第十位开始取前五位..请帮忙!!能详细点吗?不是很懂....... select top 5 * from table order by score desc 是排序后取前5个, 我现在希望排序后取从第十位开始取前五位..

请帮忙!!
能详细点吗? 不是很懂....初学不好意思.
展开
 我来答
greystar_cn
2015-12-15 · 知道合伙人软件行家
greystar_cn
知道合伙人软件行家
采纳数:16407 获赞数:17260
本人主要从事.NET C#方向的技术开发工作,具有10多年的各类架构开发工作经验。

向TA提问 私信TA
展开全部
--SQL Server 2000
select top (5) *
from ( select top 15 * from 表 order by 排序列 desc ) as a
order by 排序列 desc

--SQL Server 2005,2008,2008R2,2012通用方法
select *
from (
select *,row_number() over (order by 排序列 desc) as id
from 表
) a
where id between 10 and 15
order by id

--SQL Server 2012

select * from 表 order by 排序列 desc OFFSET 10 ROW FETCH NEXT 5 ROWS ONLY
百度网友c53a071
2008-06-24 · TA获得超过697个赞
知道小有建树答主
回答量:2622
采纳率:0%
帮助的人:926万
展开全部
加一个标识列
然后用ID判断.

补:
改表结构,如果这个表里面没有一个合适做主键就以一个ID列做为主键,然后你可以将ID列设置为自动增长(identity(1,1))

这个ID列我们的叫发就是标识列.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
掌瞬爱A
2008-06-24 · TA获得超过1309个赞
知道小有建树答主
回答量:1137
采纳率:87%
帮助的人:376万
展开全部
select *,row_number() over(order by score desc) as listid from table where (row_number() over(order by score desc))>10 and (row_number() over(order by score desc))<16
sql2005的写法
select top 5 * from table where score not in (select top 10 score from table order by score desc) order by score desc
sql2000的写法
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
篮山
2008-06-24 · TA获得超过250个赞
知道小有建树答主
回答量:289
采纳率:0%
帮助的人:65.9万
展开全部
select top 5 栏位名 from table order by score desc where 栏位名 not in (select top 9 栏位名 from table order by score desc)

最简便的方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式