在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
本文探讨了SQL2012及以后版本中OFFSET与FETCH用于分页的使用方法,强调了正确选择排序字段的重要性,避免因数据重复或NULL值导致的分页错误。通过示例代码展示了如何利用唯一字段进行有效排序。
1861

被折叠的 条评论
为什么被折叠?



