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

क्या Oracle के कुछ संस्करणों में सहसंबद्ध उपश्रेणियों के लिए नेस्टिंग सीमा है?

Oracle के हाल के संस्करणों की कोई सीमा नहीं है लेकिन Oracle के अधिकांश पुराने संस्करणों की नेस्टिंग सीमा 1 है गहरा स्तर।

यह सभी संस्करणों पर काम करता है:

SELECT  (
        SELECT  *
        FROM    dual dn
        WHERE   dn.dummy = do.dummy
        )
FROM    dual do

यह क्वेरी 12c और 18c में काम करती है लेकिन 10g और 11g में काम नहीं करती है। (हालांकि, 10g का कम से कम एक संस्करण है जिसने इस क्वेरी की अनुमति दी है। और 11g में इस व्यवहार को सक्षम करने के लिए एक पैच है।)

SELECT  (
        SELECT  *
        FROM    (
                SELECT  *
                FROM    dual dn
                WHERE   dn.dummy = do.dummy
                )
        WHERE   rownum = 1
        )
FROM    dual do

यदि आवश्यक हो तो आप इस सीमा को विंडो फ़ंक्शंस के साथ हल कर सकते हैं (जिसका उपयोग आप SQL Server . में कर सकते हैं भी :)

SELECT  *
FROM    (
        SELECT  m.material_id, ROW_NUMBER() OVER (PARTITION BY content_id ORDER BY resolution DESC) AS rn
        FROM    mat m
        WHERE   m.material_id IN
                (
                SELECT  con.content_id
                FROM    con_groups
                JOIN    con
                ON      con.content_id = con_groups.content_id
                WHERE   con_groups.content_group_id = 10
                )
        )
WHERE   rn = 1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक स्ट्रिंग के लिए to_char(myDate, 'DAY') के परिणाम की तुलना करते समय समस्या

  2. JDBC कनेक्शन डिफ़ॉल्ट ऑटोकॉमिट व्यवहार

  3. SQL सर्वर में Oracle लिंक्ड सर्वर बनाएं और कॉन्फ़िगर करें

  4. 12.2 . में Oracle ई-बिजनेस सूट आर्किटेक्चर

  5. ऑरैकल में शून्य बाधा कैसे उत्पन्न करें?