rownum adalah kolom semu yang menghitung baris dalam hasil yang ditetapkan setelah klausa where diterapkan.
SELECT table_name
FROM user_tables
WHERE rownum > 2;
TABLE_NAME
------------------------------
0 rows selected
Namun, kueri ini akan selalu mengembalikan nol baris, berapa pun jumlah baris dalam tabel.
Untuk menjelaskan perilaku ini, kita perlu memahami bagaimana Oracle memproses ROWNUM. Saat menetapkan ROWNUM ke baris, Oracle mulai dari 1 dan hanya menambah nilai saat baris dipilih; yaitu, ketika semua kondisi dalam klausa WHERE terpenuhi. Karena kondisi kami mengharuskan ROWNUM lebih besar dari 2, tidak ada baris yang dipilih dan ROWNUM tidak pernah bertambah melebihi 1.
http://blog.lishman.com/2008/03/rownum.html
Diedit
paragraf ini saya temukan di Oracle situs web yang jauh lebih baik
Pengujian kondisi untuk nilai ROWNUM yang lebih besar dari bilangan bulat positif selalu salah. Misalnya, kueri ini tidak mengembalikan baris:
SELECT * FROM employees
WHERE ROWNUM > 1;
Baris pertama yang diambil diberi ROWNUM 1 dan membuat kondisi salah. Baris kedua yang akan diambil sekarang menjadi baris pertama dan juga diberi ROWNUM 1 dan membuat kondisi menjadi salah. Semua baris selanjutnya gagal memenuhi kondisi, jadi tidak ada baris yang dikembalikan.
Anda juga dapat menggunakan ROWNUM untuk menetapkan nilai unik ke setiap baris tabel, seperti dalam contoh ini: