Sql Server 常见的几种分页方式
⒈offset fetch next方式【SqlServer2012及以上版本支持】【推荐】
1 select * from T_User 2 order by id 3 offset 5 rows /*(页数-1) * 条数 */ 4 fetch next 5 rows only /* 条数 */
⒉row_number() over()方式【SqlServer2005以上版本支持】
1 select * from 2 (select *,row_number() over(order by id) as orderId from T_User) as t 3 where t.orderId between 11 and 15 4 /* (页数-1)* 条数 + 1 */ 5 /* 页数 * 条数 */
⒊top not in方式【适用于SqlServer2012以下版本】
1 select top 5 * from T_User 2 where id not in (select top 10 id from T_User) 3 4 /* top 条数 */ 5 /* top 条数 * 页数 */
⒋max(主键)方式【本质上还是top方式,适用于SqlServer2012以下版本】
1 select top 5 * from T_User where id>= 2 (select max(id) from (select top 6 id from T_User order by id asc) a) 3 order by id; 4 /*top 条数*/ 5 /*top(页数-1)* 条数 + 1*/
分析:在数据量较大时
top not in方式:查询靠前的数据速度较快
ROW_NUMBER() OVER()方式:查询靠后的数据速度比上一种较快
offset fetch next方式:速度稳定,优于前2种,但sql版本限制2012及以上才可使用
作者:奇
出处:https://www.cnblogs.com/fanqisoft/p/10901646.html
版权:本作品采用「本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。」许可协议进行许可。
分类:
SQL
如果文章内容对您有所帮助,欢迎赞赏.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!