Tente isso para recuperar os registros N principais de uma consulta, você pode usar a seguinte sintaxe:-
SELECT *
FROM (your ordered query) alias_name
WHERE rownum <= Rows_to_return
Exemplo:-
SELECT *
FROM (select * from suppliers ORDER BY supplier_name) suppliers2
WHERE rownum <= 3