Home / Groups

No, ROWNUM in Oracle does not guarantee that you'll get the top row based on an ORDER BY. This is a common misconception.

❌ Wrong Way (Misleading)

SELECT *
FROM my_table
WHERE ROWNUM = 1
ORDER BY id ASC;

This does not work as expected. Why?

⚠️ Reason:

  • ROWNUM is assigned before the ORDER BY is applied.
  • So Oracle picks any row, labels it ROWNUM = 1, and then sorts afterward — which defeats the purpose.

✅ Correct Way to Get Top Row Ordered by id ASC

You must use a subquery to apply ORDER BY first, then apply ROWNUM.

SELECT *
FROM (
    SELECT *
    FROM my_table
    ORDER BY id ASC
)
WHERE ROWNUM = 1;

✅ Why This Works:

  • The inner query orders the rows by id ASC.
  • The outer query picks the first row (ROWNUM = 1) from the ordered result.

? Bonus: Top N rows

To get the top 10 rows ordered by ID:

SELECT *
FROM (
    SELECT *
    FROM my_table
    ORDER BY id ASC
)
WHERE ROWNUM <= 10;

✅ Oracle 12c+ Way: Use FETCH FIRST

If you're using Oracle 12c or newer, this is cleaner:

SELECT *
FROM my_table
ORDER BY id ASC
FETCH FIRST 1 ROWS ONLY;

This is ANSI SQL style and preferred in modern Oracle versions.

Let me know if you want examples with pagination, filtering, or analytic functions!

Search Groups

Groups

2 Members joined | Created By: Kartik Sharma
2 Members joined | Created By: Mr. Dubey
2 Members joined | Created By: Mr. Dubey
2 Members joined | Created By: Mr. Dubey
3 Members joined | Created By: Mr. Dubey
4 Members joined | Created By: Ram Avtar Sharma
5 Members joined | Created By: Vinay Kumar
4 Members joined | Created By: Manisha Agrawal
9 Members joined | Created By: Mr. Dubey
10 Members joined | Created By: Mr. Dubey
9 Members joined | Created By: Mr. Dubey
8 Members joined | Created By: Mr. Dubey
8 Members joined | Created By: Mr. Dubey
9 Members joined | Created By: Mr. Dubey
12 Members joined | Created By: Mr. Dubey
10 Members joined | Created By: Deepak Sahoo
11 Members joined | Created By: Java
10 Members joined | Created By: Vijay Sangwan
20 Members joined | Created By: Nisha Gupta
33 Members joined | Created By: Priyanka Tomar

You need an account to perform this action. If you have account click Login or Create an Account.


Create an account | Already have account? Login