Você pode usar uma subconsulta para isso como
select *
from
( select *
from emp
order by sal desc )
where ROWNUM <= 5;
Consulte também o tópico Sobre ROWNUM e limitando resultados no Oracle/AskTom para obter mais informações.
Atualizar :Para limitar o resultado com os limites inferior e superior, as coisas ficam um pouco mais inchadas com
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;
(Copiado do artigo específico do AskTom)
Atualização 2 :A partir do Oracle 12c (12.1) existe uma sintaxe disponível para limitar linhas ou iniciar em deslocamentos.
SELECT *
FROM sometable
ORDER BY name
OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY;
Veja esta resposta para mais exemplos. Obrigado a Krumia pela dica.