【发布时间】:2018-02-27 09:04:27
【问题描述】:
我有一个where 条件为ROWNUM=10 的sql 查询。我将查询结果存储在一个GTT 表中。但有可能 sql 查询获取的记录多于提到的 WHERE 条件,即ROWNUM=10。
所以我想知道,获取>10 记录的查询不是。
我可以通过执行两次相同的查询来实现这一点,即一次知道计数,第二次将记录插入gtt 表。
但是运行两次查询并不是一个好主意。
那么任何人都可以帮助我找到 sql 查询的计数而不执行两次。
【问题讨论】:
-
共享查询...当你说rownum=10时,它肯定只返回10。如果不是,它的位置是错误的。
-
where rownum = 10不会返回任何行,因为rownum的工作方式。where rownum<=10不会插入超过 10 行。 An MCVE 将帮助我们了解您实际在做什么以及您遇到的问题。您是否试图查看查询将找到多少行没有该条件,但仍只将前 10 行插入 GTT? -
@AlexPoole,是的,我想知道在没有 ROWNUM 条件的情况下查询会找到多少行,但只在 gtt 中插入 10 行。请注意,我有动态 SQL 查询,并且在插入 GTTi 时使用
execute immediate insert into gtt select *from query were rownum<=10