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

Oracle 10g . में कुल स्ट्रिंग कनेक्शन

Oracle 11g में यह साफ-सुथरा कार्य LISTAGG है जो कि आप जो चाहते हैं वह बहुत अधिक है, हालाँकि जब से आप 10g पर हैं तो यह आपके लिए उपलब्ध नहीं है (जब तक कि आप अपग्रेड करने का निर्णय नहीं लेते)।

यदि किसी कारण से आप 11g में अपग्रेड नहीं करना चाहते (या किसी भी कारण से नहीं कर सकते हैं), तो मेरा सुझाव है कि LISTAGG के कुछ विकल्प देखें जो आपके लिए 10g पर उपलब्ध हैं।

आप कुछ प्रस्तावित विकल्पों की जांच कर सकते हैं यहां

अपने मामले के परिदृश्य से मेल खाने के लिए प्रस्तावित विकल्पों में से एक के त्वरित अनुकूलन को त्वरित रूप से समायोजित करें:

WITH Q AS
(
    SELECT 'North' POD, 'Rony' NAME FROM DUAL  UNION ALL
    SELECT 'North',     'James'     FROM DUAL  UNION ALL
    SELECT 'North',     'Aby'       FROM DUAL  UNION ALL
    SELECT 'South',     'Sam'       FROM DUAL  UNION ALL  
    SELECT 'South',     'Willy'     FROM DUAL  UNION ALL
    SELECT 'West',      'Mike'      FROM DUAL
)
SELECT   POD,
         RTRIM(
            XMLAGG (XMLELEMENT(e, name||',') ORDER BY name).EXTRACT('//text()'),
            ','
         ) AS name
    FROM q
GROUP BY POD;

लेकिन याद रखें कि यह वास्तविक समाधान नहीं है क्योंकि आपको इसे अपनी तालिका के अनुसार तैयार करना होगा (डमी DUAL टेबल नहीं) आदि...

आपका समाधान शायद कुछ इस तरह दिखेगा:

SELECT   POD,
         RTRIM(
            XMLAGG (XMLELEMENT(E, NAME||',') ORDER BY NAME).EXTRACT('//text()'),
            ','
         ) AS NAME
    FROM tbl1
GROUP BY POD;

यदि आप सीमांकक को बदलना चाहते हैं तो आप इसे इस भाग में अल्पविराम से बदल सकते हैं:

(E, NAME||',')

RTRIM, संयोजित स्ट्रिंग के अंत से अनुगामी अल्पविराम को हटाने के लिए है, यदि आप अनुगामी अल्पविराम से परेशान नहीं हैं, तो आप पठनीयता को बनाए रखने के लिए RTRIM फ़ंक्शन को छोड़ सकते हैं।



  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 SQL में MAX ()

  2. Oracle में पैक की गई प्रक्रियाओं और कार्यों के कोड की पंक्तियों को कैसे खोजें

  3. Oracle में SQL सर्वर APPLY के बराबर क्या है?

  4. स्थिति संतुष्ट नहीं होने पर प्रतिस्थापन चर को अनदेखा करना

  5. निश्चित तालिका के लिए डेटा का स्रोत खोजें - ORACLE