Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Re: rownum
"Mark D Powell" <Mark.Powell_at_eds.com> wrote:
> This is expected behavior of the rownum psuedo column going as far back
> as I can remember. I do not know where you find this specific fact in
> the manuals. In the SQL manual section on pseudo columns where it
> convers rownum the manual tells you that any > rownum condition returns
> FALSE and shows examples using less than, <, but it does not mention
> the fact you can only query for = 1.
I assume you meant any "rownum >" condition returns false (rather than any "> rownum" condition....). But reality does not look that simple. A "> rownum" condition can return true in some cases, for example in a disjunction.
1 select dbms_utility.get_hash_value(owner,0,1000), rownum from all_objects 2* where dbms_utility.get_hash_value(owner,0,1000)=394 or rownum > 10 SQL> /
DBMS_UTILITY.GET_HASH_VALUE(OWNER,0,1000) ROWNUM
----------------------------------------- ---------- 394 1 394 2 394 3 394 4 394 5 394 6 394 7 394 8 394 9 394 10 394 11 394 12 604 13 604 14 604 15 604 16 604 17 604 18 604 19 604 20 604 21 604 22... for many more rows.
Once the left side of the "or" causes more than 10 rows to be returned, then the right side of the "or", involving a "rownum >" condition, keeps being true for the rest of the table.
Xho
-- -------------------- http://NewsReader.Com/ -------------------- Usenet Newsgroup Service $9.95/Month 30GBReceived on Wed Jan 05 2005 - 17:55:48 CST
![]() |
![]() |