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

Oracle में परिणाम कैसे सीमित करें

समस्या:

आप Oracle में किसी क्वेरी के परिणामस्वरूप पंक्तियों की संख्या को सीमित करना चाहते हैं।

उदाहरण:

exam तालिका, परीक्षा के परिणामों के साथ छात्रों के नाम हैं।

नाम परीक्षा_परिणाम
जेनेट मोर्गन 9
ताया बैन 11
ऐनी जॉनसन 11
जोश कौर 10
एलेन थॉर्नटन 8

आप तीन पंक्तियों को सर्वोत्तम परीक्षा परिणामों के साथ प्राप्त करना चाहते हैं।

समाधान 1:

SELECT *
FROM (
  SELECT *
  FROM exam
  ORDER BY exam_result DESC
)
WHERE ROWNUM <= 3;

क्वेरी का परिणाम इस तरह दिखता है:

नाम परीक्षा_परिणाम
ताया बैन 11
ऐनी जॉनसन 11
जोश कौर 10

चर्चा:

FROM . में क्लॉज, एक सबक्वेरी का उपयोग करें जो पंक्तियों को exam_result . द्वारा क्रमबद्ध करता है अवरोही क्रम में कॉलम।

SELECT *
FROM exam
ORDER BY exam_result DESC

मुख्य क्वेरी में, एक शर्त लिखें कि पंक्तियों की संख्या 3 . से कम या उसके बराबर होनी चाहिए . इसे करने के लिए ROWNUM (पंक्ति संख्या) का उपयोग करें। यह सुनिश्चित करने के लिए कि आपको केवल पहली तीन पंक्तियाँ दिखाई दें, आपको एक शर्त की आवश्यकता है कि पंक्ति संख्या 3 से कम या उसके बराबर होनी चाहिए ।

WHERE ROWNUM <= 3

पंक्तियों को क्रमबद्ध करने के लिए आपको एक सबक्वायरी की आवश्यकता है। यदि आप तीन पंक्तियों को सर्वश्रेष्ठ तीन के बजाय यादृच्छिक रूप से चाहते हैं, तो बस सबक्वेरी के बजाय तालिका का नाम लिखें।

SELECT *
FROM exam
WHERE ROWNUM <= 3;

ध्यान रहें! यह तब काम नहीं करेगा जब आप कुछ मान से बड़ी संख्या वाली पंक्तियों की तलाश कर रहे हों (उदाहरण के लिए, ROWNUM > 2 कोई पंक्ति नहीं लौटाएगा।)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल डेवलपर के साथ ऑटो इंक्रीमेंट कॉलम कैसे सेट करें?

  2. आरडीएलसी लोकलरिपोर्ट एक्सेल में निर्यात वास्तव में धीमा

  3. Oracle में अल्पविराम से अलग की गई स्ट्रिंग को कैसे विभाजित करें?

  4. वर्चुअल बॉक्स पार्ट -2 . पर चरण दर चरण R12.2.6 EBS इंस्टालेशन

  5. TO_CHAR(संख्या) Oracle में कार्य