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

Oracle10g में अनुक्रम द्वारा एकाधिक पंक्तियों के क्रम को कैसे संयोजित करें?

कभी भी WM_CONCAT का उपयोग न करें . पढ़ें WM_CONCAT फ़ंक्शन का उपयोग क्यों न करें Oracle में?

यह विषय देखें https://stackoverflow.com/a/28758117/3989608

यह अनिर्दिष्ट है, और कोई भी एप्लिकेशन जो WM_CONCAT . पर निर्भर करता है 12c . में अपग्रेड करने के बाद काम नहीं करेगा क्योंकि इसे नवीनतम 12c संस्करण से हटा दिया गया है।

स्ट्रिंग-एकत्रीकरण करने के कई तरीके हैं , डेटाबेस संस्करण . के आधार पर . नीचे कुछ उदाहरण देखें:

11gR2

LIASTAGG का उपयोग करें :

SQL> SELECT grp,
  2    listagg(command, ',') WITHIN GROUP(
  3  ORDER BY seq) command
  4  FROM t
  5  GROUP BY grp;

GRP COMMAND
--- --------------------------------------------------------------------------------------------
ONE <?xml version=1.0 encoding=UTF-8?>,<message1>MESSAGE</message1>,<message2>MESSAGE</message2>
TWO <?xml version=1.0 encoding=UTF-8?>,<message2>MESSAGE</message2>,<message9>MESSAGE</message9>

SQL>

9i और ऊपर

ROW_NUMBER() का उपयोग करें और SYS_CONNECT_BY_PATH :

SQL> SELECT grp,
  2         LTRIM(MAX(SYS_CONNECT_BY_PATH(command,','))
  3         KEEP (DENSE_RANK LAST ORDER BY seq),',') command
  4  FROM   (SELECT grp,
  5                 command,
  6                 seq,
  7                 ROW_NUMBER() OVER (PARTITION BY grp ORDER BY seq) AS curr,
  8                 ROW_NUMBER() OVER (PARTITION BY grp ORDER BY seq) -1 AS prev
  9          FROM   t)
 10  GROUP BY grp
 11  CONNECT BY prev = PRIOR curr AND grp = PRIOR grp
 12  START WITH curr = 1;

GRP COMMAND
--- --------------------------------------------------------------------------------------------
ONE <?xml version=1.0 encoding=UTF-8?>,<message1>MESSAGE</message1>,<message2>MESSAGE</message2>
TWO <?xml version=1.0 encoding=UTF-8?>,<message2>MESSAGE</message2>,<message9>MESSAGE</message9>

SQL>



  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 डेवलपर में जॉब शेड्यूल कैसे करें?

  2. ओरेकल में ज्ञात विभाजन कुंजी मान दिए जाने पर कैसे बताएं कि एक पंक्ति किस विभाजन में जाएगी?

  3. Oracle क्वेरी वर्ष के अनुसार QTY को रोलअप करने के लिए- केवल पिछले 3 वर्ष

  4. PLS-00103 Oracle संग्रहीत कार्यविधि त्रुटि

  5. एकाधिक कॉलम वापस करने के लिए कई कॉलम पर UNPIVOT