限制从 Oracle 中的 SQL 查询返回的记录

     2023-05-09     173

关键词:

【中文标题】限制从 Oracle 中的 SQL 查询返回的记录【英文标题】:Limiting returned record from SQL query in Oracle 【发布时间】:2009-01-28 04:15:40 【问题描述】:

我负责每 x 秒检查一次 Oracle 数据库表以查看是否有新数据要处理的应用程序(其他实时应用程序正在填充它)。

我们的新客户端业务流程强制我们实时在此表中同时填充大量记录(例如 10000 条),但每天只填充几次。下次我的应用程序检查是否有任何要处理的内容时,它会遇到 10 000 条记录并尝试处理它。

它的设计不是很好,只是规模不够好。快速修复将限制应用程序从 Oracle 获得的记录数量,下次它将选择另外 50 个(或其他)等。

如何在 Oracle SQL 中限制返回记录的数量?订单很重要!

  select * 
    from cool_table where date >= to_date('200901010000', 'YYYYMMDDhh24mi') 
order by seq_nr, entry_dts;

【问题讨论】:

【参考方案1】:
select * from
(select c.* from cool_table c
   where date >= to_date('200901010000', 'YYYYMMDDhh24mi') 
   order by seq_nr, entry_dts)
where rownum < 50

您需要确保在 rownum 过滤之前完成排序(否则它将先找到它找到的前 50 行,然后再排序)

【讨论】:

【参考方案2】:

从 Oracle 12c 开始,它最终支持标准 ANSI fetch first n rows 选项:

select * 
from cool_table where date >= to_date('200901010000', 'YYYYMMDDhh24mi') 
order by seq_nr, entry_dts
fetch first 50 rows only;

这可以与分页偏移结合使用:

select * 
from cool_table where date >= to_date('200901010000', 'YYYYMMDDhh24mi') 
order by seq_nr, entry_dts
offset 50 rows 
fetch first 50 rows only;

【讨论】:

如何从 Oracle PL/SQL 函数中返回现有表中的记录?

】如何从OraclePL/SQL函数中返回现有表中的记录?【英文标题】:HowtoreturnarecordfromanexistingtablefromanOraclePL/SQLfunction?【发布时间】:2010-02-2518:55:30【问题描述】:我知道这似乎是一件基本的事情,但我以前从未这样做过。我想从现... 查看详情

oracle分页查询rownum的用法

...分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,且rownum不能以任何表的名称作为前缀。(1)rownum对于等于某值的查询条件如果希望找到学生表中第一条学生的信息,可以使用rownum=1作为条件。但是... 查看详情

sql如何显示查询结果的前100条?

...分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,且rownum不能以任何表的名称作为前缀拓展资料:SQL即结构化查询语言(StructuredQueryLanguage),是一种特殊目的的编程语言,是一种数据库查询和程序设... 查看详情

Oracle 查询:如何将返回的记录限制为计数 > 1 但显示完整结果的记录?

】Oracle查询:如何将返回的记录限制为计数>1但显示完整结果的记录?【英文标题】:Oraclequery:howdoIlimitthereturnedrecordstoonlythosehavingacount>1butshowfullresults?【发布时间】:2019-10-2500:26:00【问题描述】:我需要显示拥有多个ID的所... 查看详情

如何从 Access 2010 中的 SQL 存储过程返回多个记录集

】如何从Access2010中的SQL存储过程返回多个记录集【英文标题】:HowDoIReturnMultipleRecordsetsfromSQLStoredProcedureinAccess2010【发布时间】:2013-12-0316:04:58【问题描述】:我在Access中创建了一个传递查询,它执行一个存储过程,在我的SQL数... 查看详情

Oracle Sql 查询一条记录大数据中的报表

】OracleSql查询一条记录大数据中的报表【英文标题】:OracleSqlqueryforreportinonerecordlargedata【发布时间】:2020-10-1618:04:43【问题描述】:亲爱的我需要为每个员工每个日期的交易数量生成报告每个员工有10条记录,每条记录包括当天... 查看详情

ORACLE SQL 查询从其他表中的行字符串匹配的行返回值

】ORACLESQL查询从其他表中的行字符串匹配的行返回值【英文标题】:ORACLESQLquerytoreturnavaluefromarowwherestringsofrowsinothertablesmatch【发布时间】:2019-11-2508:39:50【问题描述】:我正在尝试让它工作,它应该很简单,但我无法确定它。我... 查看详情

Sql 查询为表中的每个组合返回一条记录

】Sql查询为表中的每个组合返回一条记录【英文标题】:Sqlquerytoreturnonesinglerecordpereachcombinationinatable【发布时间】:2012-05-0520:54:43【问题描述】:我需要(from_id,to_id)的每个组合的结果,它具有最小值和匹配条件的循环。所以基本... 查看详情

Oracle Pl/sql 从多个查询中返回一个游标

】OraclePl/sql从多个查询中返回一个游标【英文标题】:OraclePl/sqlreturnonecursorfrommultiplequeries【发布时间】:2010-11-2717:12:43【问题描述】:我有一个存储过程,它返回一个游标。应用程序将一个参数传递给确定应该获取多少ID的过程... 查看详情

如何在 Oracle 中查找 SQL 查询中返回的记录的内存大小?

】如何在Oracle中查找SQL查询中返回的记录的内存大小?【英文标题】:HowtofindMemorySIZEofrecordsreturnedinaSQLQueryinOracle?【发布时间】:2019-10-2506:48:46【问题描述】:我正在查询返回10,000条记录。SELECT*FROMemployeeWHEREid<11000;返回的数据... 查看详情

如何限制查询中返回的组数,而不是 Oracle 中的行数

】如何限制查询中返回的组数,而不是Oracle中的行数【英文标题】:Howtolimitnumberofgroupsreturnedinaquery,butnotthenumberofrowsinOracle【发布时间】:2020-11-2619:26:30【问题描述】:如何限制查询中的组数,而不是Oracle中的行数?如果我必须... 查看详情

从多个更新查询中返回一个“更新的记录”

...我没有太多SQL经验,也不知道我公司使用的是什么版本的Oracle。我有一个明天需要更新的产品价格表。有几千条记录将得到更新,但还有一千条记录将保持不变。现在我对每条记录都有一个更新语句,虽然 查看详情

rownum用法

...分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,且rownum不能以任何表的名称作为前缀。(1)rownum对于等于某值的查询条件如果希望找到学生表中第一条学生的信息,可以使用rownum=1作为条件。但是... 查看详情

在plsql中怎么能取到表中按id降序排列的前十条记录???

...imit是mysql中的用法)、top(top是sqlserver)关键字,oracle中限制行数条件是用rownum。扩展资料对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限... 查看详情

Oracle - 记录执行的查询

...有帮助的查询:selectv.SQL_TEXTfromv$sqlv很遗憾,此字段受1Kb限制。就我而言,我有相当大的SQL查询,Oracle将其截断。如 查看详情

Python查询sql db中的最后一条记录,但返回空白记录

】Python查询sqldb中的最后一条记录,但返回空白记录【英文标题】:Pythonqueryinglastrecordinsqldb,butreturningblankrecord【发布时间】:2022-01-2112:14:46【问题描述】:我正在使用PythonFlask和SQLAlchemy创建一个简单的Web应用程序,该应用程序将... 查看详情

PL/SQL - 如何从连接表中返回单行

...:这可能很简单,我只是目前还没有看到树木的树木。在Oracle中,我从表A中选择记录,这些记录根据表A的主键连接到表B。但是表B可以有多个与表A的主键匹配的记录。这导致我的查询从表中返回重复的行A.以下是我的查询的精... 查看详情

SQL从日期范围内的同一表中的不同记录中获取多个项目的总和(ORACLE)

...期范围内的同一表中的不同记录中获取多个项目的总和(ORACLE)【英文标题】:SQLtogetthesumofseveralitemsfromdifferentrecordsinthesametablewithindaterange(ORACLE)【发布时间】:2016-12-1917:12:19【问题描述】:我有一个如下架构。我想运行以下查... 查看详情