ROWNUM vs ROW_NUMBER()
ROWNUM
Assigned before sorting. Use subqueries for proper ordering.
SELECT * FROM (SELECT * FROM employees ORDER BY salary DESC) WHERE ROWNUM <= 5;ROW_NUMBER()
SELECT * FROM (
SELECT e.*, ROW_NUMBER() OVER (ORDER BY salary DESC) AS rn
FROM employees e
) WHERE rn <= 5;