SQL中用OFFSET FETCH NEXT 分页的坑__学而时习之_的博客-CSDN博客

来源: (1条消息) SQL中用OFFSET FETCH NEXT 分页的坑__学而时习之_的博客-CSDN博客

SQL2012后的版本中支持了OFFSET index FETCH NEXT page_size ROWS ONLY的分页方式,但要分页就必须要有排序,而排序的字段选择的不对,就有可能造成分页结果不正确,比如第1页和第2页的数据有重复。为什么呢?

究其原因,是因为排序字段的数据不唯一,或才有null,比如按价格排序,有同一价格的商品很多,结果就会造成排序错误。所以需要选择唯一值的字段来排序,比如自增的索引、GUID、KEY等,示例代码如下

DECLARE @PageIndex INT
DECLARE @PageSize INT
SET @PageIndex=0
SET @PageSize=10
SELECT * FROM TProduct ORDER BY Product_Key DESC
OFFSET @PageIndex * @PageSize ROWS FETCH NEXT @PageSize ROWS ONLY

————————————————
版权声明:本文为CSDN博主「_学而时习之_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xxdddail/article/details/89173470

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏