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

एसक्यूएल (ओरेकल):ऑर्डर बाय और लिमिट

12.1 से पहले, Oracle LIMIT . का समर्थन नहीं करता है या OFFSET खोजशब्द। यदि आप परिणाम सेट की पंक्तियों N से M तक को पुनः प्राप्त करना चाहते हैं, तो आपको कुछ इस तरह की आवश्यकता होगी:

SELECT a.*
  FROM (SELECT b.*,
               rownum b_rownum
          FROM (SELECT c.*
                  FROM some_table c
                 ORDER BY some_column) b
         WHERE rownum <= <<upper limit>>) a
 WHERE b_rownum >= <<lower limit>>

या विश्लेषणात्मक कार्यों का उपयोग करना:

SELECT a.*
  FROM (SELECT b.*,
               rank() over (order by some_column) rnk
          FROM some_table)
 WHERE rnk BETWEEN <<lower limit>> AND <<upper limit>>
 ORDER BY some_column

इनमें से कोई भी दृष्टिकोण आपको क्रमबद्ध परिणाम की N से M तक पंक्तियाँ देगा।

12.1 और बाद के संस्करण में, आप OFFSET . का उपयोग कर सकते हैं और/या FETCH [FIRST | NEXT] ऑपरेटर:

SELECT *
  FROM some_table
 ORDER BY some_column
 OFFSET <<lower limit>> ROWS
  FETCH NEXT <<page size>> ROWS ONLY



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. फिक्स "इंटेल डिफ़ॉल्ट उपसर्ग (/ usr / स्थानीय) में एआरएम प्रोसेसर पर होमब्रू में स्थापित नहीं कर सकता!"

  2. Oracle में विदेशी कुंजी निर्माण मुद्दा

  3. wf_java_deferred कतार का पुनर्निर्माण कैसे करें

  4. Oracle डेटाबेस में श्रोता को कॉन्फ़िगर करना (12c, 18c और 19c संस्करण)

  5. एसक्यूएल स्क्रिप्ट से शेल स्क्रिप्ट पर वापसी मूल्य