Intente esto para recuperar los registros Top N de una consulta, puede usar la siguiente sintaxis::-
SELECT *
FROM (your ordered query) alias_name
WHERE rownum <= Rows_to_return
Ejemplo:-
SELECT *
FROM (select * from suppliers ORDER BY supplier_name) suppliers2
WHERE rownum <= 3