sql server 分页语句OFFSET 和 FETCH NEXT 怎样使用?

原文链接:https://blog.csdn.net/weixin_45659376/article/details/107336143

在Sql Server 2012之前,实现分页主要是使用ROW_NUMBER(),在SQL Server2012,可以使用Offset ...Rows Fetch Next ... Rows only的方式去实现分页数据查询。

在Order By子句中新增 Offset-Fetch子句,用于从有序的结果集中,跳过一定数量的数据行,获取指定数量的数据行,从而达到数据行分页的目的。经过测试,从逻辑读取数量和响应的时间消耗来测评,使用Offset-Fetch实现的分页方式,比Row_Number()方式性能要高很多。
Offset-Fetch子句要求结果集是有序的,因此,只能用于order by 子句中,语法如下:

// x1:跳过的行数  x2:显示的行数
ORDER BY 字段 ASC/DESC offset x1 rows fetch next x2 rows only 

offset 10 rows fetch next 5 rows only

跳过10行,返回5行

 

posted @ 2024-04-07 23:49  yinghualeihenmei  阅读(106)  评论(0编辑  收藏  举报