राउनम एक छद्म स्तंभ है जो परिणाम सेट में पंक्तियों की गणना करता है जहां क्लॉज लागू किया गया है।
SELECT table_name
FROM user_tables
WHERE rownum > 2;
TABLE_NAME
------------------------------
0 rows selected
हालांकि, तालिका में पंक्तियों की संख्या की परवाह किए बिना, यह क्वेरी हमेशा शून्य पंक्तियों को लौटाएगी।
इस व्यवहार की व्याख्या करने के लिए, हमें यह समझने की आवश्यकता है कि Oracle ROWNUM को कैसे संसाधित करता है। एक पंक्ति में ROWNUM निर्दिष्ट करते समय, Oracle 1 से शुरू होता है और केवल एक पंक्ति के चयनित होने पर मान में वृद्धि करता है; यानी, जब WHERE क्लॉज की सभी शर्तें पूरी होती हैं। चूँकि हमारी शर्त के लिए यह आवश्यक है कि ROWNUM 2 से बड़ा हो, कोई पंक्तियाँ नहीं चुनी जाती हैं और ROWNUM कभी भी 1 से आगे नहीं बढ़ता है।
http://blog.lishman.com/2008/03/rownum.htmlए>
संपादित
यह पैराग्राफ मुझे oracle पर मिलता है वेबसाइट जो बहुत बेहतर है
सकारात्मक पूर्णांक से बड़े ROWNUM मानों के लिए परीक्षण की शर्तें हमेशा झूठी होती हैं। उदाहरण के लिए, यह क्वेरी कोई पंक्ति नहीं लौटाती है:
SELECT * FROM employees
WHERE ROWNUM > 1;
प्राप्त की गई पहली पंक्ति को 1 का ROWNUM असाइन किया गया है और यह शर्त को गलत बनाता है। प्राप्त की जाने वाली दूसरी पंक्ति अब पहली पंक्ति है और इसे 1 का ROWNUM भी दिया गया है और यह स्थिति को गलत बनाता है। बाद में सभी पंक्तियाँ शर्त को पूरा करने में विफल हो जाती हैं, इसलिए कोई पंक्तियाँ वापस नहीं की जाती हैं।
आप तालिका की प्रत्येक पंक्ति के लिए अद्वितीय मान निर्दिष्ट करने के लिए ROWNUM का भी उपयोग कर सकते हैं, जैसा कि इस उदाहरण में है: