首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >循环来自大型数据库的SQL查询以执行增量数据拉取

循环来自大型数据库的SQL查询以执行增量数据拉取
EN

Stack Overflow用户
提问于 2020-05-30 14:39:52
回答 2查看 167关注 0票数 0

我有一个关于在SQL中构造查询的一般性问题。

我有一个数据库,我需要为它提取过去n天的数据,这被证明是非常庞大的,无法放入内存中。

我有一个类似这样的查询

代码语言:javascript
运行
复制
 SELECT * FROM DB_A 
  WHERE data >=n days

将查询放入内存的最好方法是使用循环,这样我就可以一次提取数据,比如m天(其中m << n)

那么我该怎么做呢?

我一点也不明白。

EN

Stack Overflow用户

发布于 2020-05-30 15:17:46

如果您使用的是Oracle 12c或更高版本,则可以通过使用OFFSET和FETCH直接使用分页,如下所示:

代码语言:javascript
运行
复制
SELECT * FROM DB_A 
  WHERE data >=n days
ORDER BY n
OFFSET m*x rows
fetch next m rows only;

这里,x是从0开始的迭代次数。

假设你一次想要5行。

对于第一次迭代:

代码语言:javascript
运行
复制
OFFSET 0 rows
fetch next 5 rows only;

对于第二次迭代:

代码语言:javascript
运行
复制
OFFSET 5 rows
fetch next 5 rows only;

一直持续到最后……

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62098783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档