Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

मॉड फंक्शन के साथ ओरेकल राउनम बिहेवियर

ROWNUM जब तक आप क्वेरी नहीं करते हैं, तब तक असाइन नहीं किया जाता है, इसलिए आप इसका उपयोग WHERE . में नहीं कर पाएंगे उस तरह का खंड।

आप निम्न कार्य कर सकते हैं:

SELECT COUNT(*) 
FROM
(
  select v1, v2, rownum rn
  from Foo 
) f
WHERE mod(rn,2) = 0;

ROWNUM परिणाम सेट में पंक्ति की स्थिति है, और रिकॉर्ड्स के चयन के बाद इसका मूल्यांकन किया जाता है।

इस प्रकार की क्वेरी कभी काम नहीं करेंगी:

WHERE ROWNUM > x
WHERE ROWNUM BETWEEN x AND y

लेकिन यह काम करेगा

WHERE ROWNUM < x

चूंकि आप rownum . का मूल्यांकन करना चाहते हैं mod . के साथ फ़ंक्शन यह काम नहीं करेगा क्योंकि rownum उस समय उपलब्ध नहीं है। यही कारण है कि, mod . का उपयोग करने के लिए आपको इसे उप-क्वेरी में रखना होगा समारोह।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 40 प्रश्न आपको R12.2 . के बारे में अवश्य जानना चाहिए

  2. बाएं/दाएं पक्षों के साथ उपयोगकर्ता परिभाषित ऑपरेटर बनाएं

  3. tnsnames.ora फ़ाइल के बिना Oracle कनेक्शन स्ट्रिंग

  4. org.hibernate.MappingException:JDBC प्रकार के लिए कोई बोली मानचित्रण नहीं:2002

  5. प्रत्येक संबंध बाधा के लिए केवल एक सक्रिय