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

sql (ओरेकल) पहले 10 रिकॉर्ड का चयन करने के लिए, फिर अगले 10, और इसी तरह

ऐसा करने का केवल एक जटिल तरीका है, जो कि Oracle के साथ एक वास्तविक दर्द है। उन्हें बस एक LIMIT/OFFSET क्लॉज लागू करना चाहिए...

राउनम को बाद असाइन किया जाता है पंक्ति को जहां क्लॉज द्वारा चुना गया है, ताकि एक राउनम हमेशा 1 से शुरू होना चाहिए। where rownum > x हमेशा असत्य का मूल्यांकन करेगा।

साथ ही, राउनम को सॉर्ट करने से पहले असाइन किया जाता है , इसलिए राउनम उसी क्रम में नहीं होगा जैसा कि आपका आदेश कहता है।

उप-चयन के साथ आप दोनों समस्याओं को हल कर सकते हैं:

 select a,b,c, rn from 
    ( select a,b,c, rownum rn from 
         ( select a,b,c from the_table where x = ? order by c)
      where rownum < Y)
  where rn > X

यदि आपको सॉर्ट करने की आवश्यकता नहीं है (लेकिन केवल तभी), तो आप इसे सरल कर सकते हैं

 select a,b,c, rn from
     ( select a,b,c, rownum rn from the_table where rownum < Y )
   where rn > X


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle सबक्वेरी बाहरी ब्लॉक 2 स्तरों से चर नहीं देखता है

  2. SQL क्वेरी के साथ Oracle स्कीमा आकार कैसे प्रदर्शित करें?

  3. डायनेमिक PL/SQL दिनांक पैरामीटर समय मान के साथ बरकरार रखा गया

  4. पीएल/एसक्यूएल में एक स्ट्रिंग को उलटने की एक प्रक्रिया

  5. रेगेक्स यह पता लगाने के लिए कि क्या कोई संख्या एक सीमा के भीतर है, उदाहरण 1,3,10-15,17