我想执行一个选择查询,返回数据库上的大量数据.所述数据库迫使我将我的查询拆分为10000个结果的块,其中包含偏移量+限制.当我迭代这些块时,其他人更新数据库,这在某些情况下可能使db多次返回同一行.我通过后处理过滤器处理它,删除具有重复id的行,但我想知道是否有一种方法可以构建一组sql查询,这些查询允许我跨多个select语句获取数据库的连贯视图.即,BEGIN + COMMIT但是用于选择.
我提到我不是一个sql人吗?
你能不:
按 ID 排序,获取前 10000 个,获取最后一个 id。
第二次过滤大于 LAST id 的值,得到下一个 10000。
做同样的事情直到完成
Select top(10000) * from Table order by id
Run Code Online (Sandbox Code Playgroud)
获取最后一个id
Select top(10000) * from Table where id> LAST order by id
Run Code Online (Sandbox Code Playgroud)
LAST 当然用数字代替
水平很低,但应该解决问题并消除重复
归档时间: |
|
查看次数: |
180 次 |
最近记录: |