如何使用Oracle SQL查找表中是否还有更多记录

Himanshu Agrawal

我正在使用sql从表中为特定范围的记录选择数据。我正在使用rownum实现大于或小于逻辑来实现所需的数据集。通过使用以下sql,我可以从表中获取21到40的记录。此条件表总共包含100行。通过此sql,我想获取一个指示符(值),该指示符指示存在更多针对此条件的记录。

我在Google中找不到任何解决方案。SQL-

select * from ( select rownum rnum, a.* from(SELECT TO_CHAR(D.DATE,'YYYYMMDD'),D.TYPE, 
TO_CHAR(D.VDATE,'YYYYMMDD'),D.AMT,D.PARTICULAR,D.NUM,D.ID,
D.CODE,D.INFO FROM MySCHEMA
.MYTABLE D WHERE D.DATE >= TO_CHAR(TO_DATE('20160701','YYYYMMDD'),'DD-MON-RRRR') 
AND D.DATE <= TO_CHAR(TO_DATE('20161105','YYYYMMDD'),'DD-MON-RRRR') AND D.XDATE >= TO_CHAR(TO_DATE('20160701','YYYYMMDD'),'DD-MON-RRRR') 
AND D.XDATE <= TO_CHAR(TO_DATE('20161105','YYYYMMDD'),'DD-MON-RRRR') 
AND D.FLG='Y' AND D.TYPE IN('D','C') 
AND
 D.ACI = 'CO6'
 ORDER BY D.DATE  DESC
 )
a where rownum <= 40 ) where  rnum >= 21;
贾斯汀洞穴

您可以count(*) over () total_rows在您的内部添加select这将告诉您内部查询在没有rownum谓词的情况下将返回多少行但这意味着,每次您要请求一页结果时,Oracle必须完全执行内部查询,然后丢弃所有您未提取的行。这将比您目前的工作更昂贵

select * 
  from ( select rownum rnum, a.* 
           from(SELECT count(1) over () total_rows,
                       <<the rest of your query>>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用skip()和limit()实现分页时,检查是否还有更多文档

使用Oracle,如何恢复意外删除的表?

使用LIMIT查询后,如何判断是否还有更多数据?

如何检查SQL数据库中是否有记录?

如何使用purrr匹配查找表中的记录?

如何在SQL中按列分组查找所有列记录是否相同

Oracle SQL-如何使用分页循环记录?

如何使用SQL根据其他两个表的信息查找不在表中的记录?

如何查找特定列中是否有两个或更多个相等的最小值

Oracle SQL:如何从组中查找记录

sqlite-使用单个查询查找表中是否存在多个记录

如何在SQL Server中查找没有记录的表的列表

如何从Oracle中的表中删除记录?

如何使用Oracle全局临时表?

如何查找插入到SQL表中的记录数

Oracle SQL-查找历史记录表中列更改的最新数据

如何使用“ Not In” oracle来获取记录

如何在Oracle SQL中使用by by子句

使用多个列在Entity Framework中查找SQL表中的所有重复记录

如何检查数据湖表中是否有记录

ORACLE - 如何知道是否有任何视图正在使用表?

如何使用 SQL Oracle 进行连续计数

检查所选记录后是否还有更多记录

如何使用 Oracle 数据透视表查询?

如何查找两个表中都存在的记录以及左表中的所有记录?

如何使用sql从oracle中的时间戳生成登录记录?

如何使用SQL在表中查找最近的N条连续记录

如何使用 Oracle.jl 删除 oracle 表?

如何从oracle 11g中的sql表中查找每小时时差的所有记录?