Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想执行一个在数据库中返回大量数据的选择查询。所述数据库迫使我将我的查询拆分为 10000 个结果的块,并带有偏移量 + 限制。当我遍历这些块时,其他人会更新数据库,这在某些情况下可能会使数据库多次返回同一行。我通过一个删除具有重复 ID 的行的后处理过滤器来处理它,但我想知道是否有一种方法可以构建一组 sql 查询,使我能够跨多个 select 语句获得数据库的一致视图。即,BEGIN+COMMIT 但用于选择。
我有没有提到我不是一个 sql 人?
你能不:
按 ID 排序,获取前 10000 个,获取 LAST id。
第二次过滤大于 LAST id,得到下一个 10000。
做同样的事情直到你完成
Select top(10000) * from Table order by id
获取最后一个 id
Select top(10000) * from Table where id> LAST order by id
LAST 当然用数字代替
非常低的级别,但应该解决问题并消除重复