Tamil showed you Oracle just read 500 (only) when you specify ROWNUM <=500 and how Oracle will do an ORDER BY on rows which was never red?
Use subquery for this
SELECT * FROM ( Your original query with ORDER BY) where rownum <=500
But the plan will be different and will fetch all rows satisfying your condition.




Reply With Quote