I would like to know, whether I can query a table based on the rownum.
for example, If I want the records from 5000 to 10000 in the table : Can I use
select * from table_name
where rownum between 5000 and 10000;
Rownum Changes with the Query.
Valid Commands for Rownum
Rownum = 1 (Equal Sign only with 1)
Rownum <= Always fine
Nothing else is supported... You won't get any thing.
You can use ROWNUM to limit the number of rows returned by a query, as in this example:
SELECT * FROM emp WHERE ROWNUM < 10;
Conditions testing for ROWNUM values greater than a positive integer are always false. For example, this query returns no rows:
SELECT * FROM emp
WHERE ROWNUM > 1;
The first row fetched is assigned a ROWNUM of 1 and makes the condition false. The second row to be fetched is now the first row and is also assigned a ROWNUM of 1 and makes the condition false. All rows subsequently fail to satisfy the condition, so no rows are returned.
You can think things in defferent way:
First get a result set by querying rownum < 10000,
then you can get the result set you want by issuing rownum > 5000 based on the first result set which you already done.
the following is what I cut down from the same forum long time ago, thanks to the contributor.
To have records from 10 to 20
select * from emp where rownum < 21
select * from emp where rownum < 11;
This would work as well
select * from
(select empno, ename, mgr, rownum as number_row from emp where rownum < 21)
where number_row > 11;
... and pando's is much more efficient.
Here is a thread on the topic:
yeah use the inline view like the one used by pando definately it will work
Click Here to Expand Forum to Full Width