Quantcast
Viewing latest article 15
Browse Latest Browse All 17

Answer by Kosi2801 for How do I limit the number of rows returned by an Oracle query after ordering?

You can use a subquery for this like

select *from  ( select *   from emp   order by sal desc ) where ROWNUM <= 5;

Have also a look at the topic On ROWNUM and limiting results at Oracle/AskTom for more information.

Update:To limit the result with both lower and upper bounds things get a bit more bloated with

select * from ( select a.*, ROWNUM rnum from   ( <your_query_goes_here, with order by> ) a   where ROWNUM <= :MAX_ROW_TO_FETCH )where rnum  >= :MIN_ROW_TO_FETCH;

(Copied from specified AskTom-article)

Update 2:Starting with Oracle 12c (12.1) there is a syntax available to limit rows or start at offsets.

-- only get first 10 resultsSELECT * FROM   sometableORDER BY nameFETCH FIRST 10 ROWS ONLY;-- get result rows 20-30SELECT * FROM   sometableORDER BY nameOFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY;

See this answer for more examples. Thanks to Krumia for the hint.


Viewing latest article 15
Browse Latest Browse All 17

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>