sql server 查询显示第10条到第20条信息

请问用sqlserver查询显示第10条到第20条信息怎么做呢?不要子查询一句话搞定表明为StuInfo... 请问用sql server 查询显示第10条到第20条信息怎么做呢? 不要子查询
一句话搞定
表明为StuInfo
展开
 我来答
fukeainideren
推荐于2018-03-08 · TA获得超过1934个赞
知道小有建树答主
回答量:461
采纳率:100%
帮助的人:169万
展开全部

呵呵,我看了看其他的人的回答,大多都进行了排序,或者强制设置主键进行大小判断,这样的答复感觉还是欠妥的;

下面的方案在sql server 2014上面是测试通过的,具体的可以看:

select top 20 * from StuInfo
except
select top 9 * from StuInfo

具体的例子可以看下图:

注:我的数据库是 sql server 2014

希望对你有用哦,谢谢

hit_lubin
推荐于2016-01-26 · TA获得超过7889个赞
知道大有可为答主
回答量:1554
采纳率:100%
帮助的人:2028万
展开全部
一句干脆的SQL语法是无法查询出以上的结果的。不套着子查询是不可能的。
先选出前20行记录,再选前10行记录,作为两个表,做个减
select * from
(select top 20 * from stuinfo ) a
where not exists (select 1 from (select top 10 * from stuinfo) b where a.主键 = b.主键)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
老冯文库
推荐于2018-02-26 · 知道合伙人软件行家
老冯文库
知道合伙人软件行家
采纳数:1139 获赞数:8734

向TA提问 私信TA
展开全部
SELECT TOP 11 * FROM (
SELECT ROW_NUMBER() OVER (ORDER BY StuID) AS RowNumber, *
FROM StuInfo) t
WHERE RowNumber >= 10

假设StuID是StuInfo表的主键“学号”。先按学号排序,生成行号,再返回行号>=10时的前11条记录,即行号为10~20的11条记录。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
长江之滨jerry
2011-04-08
知道答主
回答量:18
采纳率:0%
帮助的人:8.8万
展开全部
select * from
(
select top 20 * from Table1 a where PK not in
(select top 10 PK from Table1 b order by PK)
order by PK
)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2018-02-24
展开全部
(select * from task except select top 6 * from task) INTERSECT select top 9 * from task
TOP6-TOP9
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式