我试图运行此查询,但它返回零行。任何线索为什么?
Select distinct a.id
from table1 a, table b
where ( a.id= b.id or a.id = b.secondid ) and rownum < 200;
但如果我在没有ROWNUM子句的情况下运行上述查询,它会找到记录:
Select distinct a.id
from table1 a, table b
where ( a.id= b.id or a.id = b.secondid );
我很困惑为什么第一个查询无效。
答案 0 :(得分:3)
在 Oracle确定要返回的行之后,您需要应用ROWNUM
。唯一可靠的方法是:
SELECT * FROM (
Select distinct a.id
from table1 a, table b
where ( a.id= b.id or a.id = b.secondid )
) WHERE ROWNUM < 200;
答案 1 :(得分:0)
请使用下面的线程。很好的解释。 https://community.oracle.com/thread/210143 这是两个可行的解决方案。
答案 2 :(得分:-1)
将“和rownum&lt; 200”更改为“WHERE rownum&lt; 200”