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

请问用sql server 查询显示第10条到第20条信息怎么做呢? 不要子查询
一句话搞定
表明为StuInfo

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

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

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

具体的例子可以看下图:

注:我的数据库是 sql server 2014

希望对你有用哦,谢谢

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-01-26
一句干脆的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.主键)本回答被提问者采纳
第2个回答  推荐于2018-02-26
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条记录。本回答被网友采纳
第3个回答  2011-04-08
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
)
第4个回答  2018-02-24
(select * from task except select top 6 * from task) INTERSECT select top 9 * from task
TOP6-TOP9
相似回答