SQL Server 2012使用Offset/Fetch Next分页,出现数据重复的问题

t101lian 2018-08-07 11:17:09
如题, 分页的时候出现很多重复数据,实在搞不懂,请教各位大神


--------------分隔符------------第5页的数据-------





--------------分隔符------------第1页的数据-------


--------------分隔符------------第2页的数据-------
...全文
990 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
t101lian 2018-08-07
  • 打赏
  • 举报
回复
引用 3 楼 yenange 的回复:
[quote=引用 2 楼 t101lian 的回复:]
[quote=引用 1 楼 yenange 的回复:]
分页时, 排序字段很重要, 不要乱拿一些不确定的列(为null, 或者很容易重复的列)来分页,
这样会导致分页的前后顺序没法确定。
如果避免不了, 应该加上主键, 合在一起来分页。

另外,你一页 10 条记录?
第 2 页不是 offset 10 rows fetch next 10 rows only 才对么?



测试的时候改错了, 的确是10条每页,, 上面应该是 offset 10 和 offset 50, 谢谢提醒。 这样还是有重复的, 那原因是 排序字段导致对吧?[/quote]
嗯, 直接用主键排序吧[/quote]
谢谢了, 换了主键排序就可以了, 没有重复的
吉普赛的歌 2018-08-07
  • 打赏
  • 举报
回复
引用 4 楼 t101lian 的回复:
谢谢了, 换了主键排序就可以了, 没有重复的


没事就结贴吧
吉普赛的歌 2018-08-07
  • 打赏
  • 举报
回复
引用 2 楼 t101lian 的回复:
[quote=引用 1 楼 yenange 的回复:]
分页时, 排序字段很重要, 不要乱拿一些不确定的列(为null, 或者很容易重复的列)来分页,
这样会导致分页的前后顺序没法确定。
如果避免不了, 应该加上主键, 合在一起来分页。

另外,你一页 10 条记录?
第 2 页不是 offset 10 rows fetch next 10 rows only 才对么?



测试的时候改错了, 的确是10条每页,, 上面应该是 offset 10 和 offset 50, 谢谢提醒。 这样还是有重复的, 那原因是 排序字段导致对吧?[/quote]
嗯, 直接用主键排序吧
t101lian 2018-08-07
  • 打赏
  • 举报
回复
引用 1 楼 yenange 的回复:
分页时, 排序字段很重要, 不要乱拿一些不确定的列(为null, 或者很容易重复的列)来分页,
这样会导致分页的前后顺序没法确定。
如果避免不了, 应该加上主键, 合在一起来分页。

另外,你一页 10 条记录?
第 2 页不是 offset 10 rows fetch next 10 rows only 才对么?



测试的时候改错了, 的确是10条每页,, 上面应该是 offset 10 和 offset 50, 谢谢提醒。 这样还是有重复的, 那原因是 排序字段导致对吧?
吉普赛的歌 2018-08-07
  • 打赏
  • 举报
回复
分页时, 排序字段很重要, 不要乱拿一些不确定的列(为null, 或者很容易重复的列)来分页,
这样会导致分页的前后顺序没法确定。
如果避免不了, 应该加上主键, 合在一起来分页。

另外,你一页 10 条记录?
第 2 页不是 offset 10 rows fetch next 10 rows only 才对么?

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧