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

Oracle 10g . में LISTAGG विकल्प

XMLAGG using का उपयोग करके देखें इस तरह:

select
    p.PeopleID,
    rtrim(xmlagg(xmlelement(e, s.SiteName, ',')).extract('//text()').getclobval(), ',')
from people p
join site s on p.SiteID = s.SiteID
group by p.PeopleID;

यदि आपको किसी विशेष क्रम में संयोजन की आवश्यकता है, जैसे SiteId के बढ़ते क्रम में, तो order by जोड़ें xmlagg में क्लॉज:

select
    p.PeopleID,
    rtrim(xmlagg(xmlelement(e, s.SiteName, ',')
                   order by s.SiteId).extract('//text()').getclobval(), ',')
from people p
join site s on p.SiteID = s.SiteID
group by p.PeopleID;

संपादित करें:

यदि आप उन सभी लोगों के लिए प्रदर्शन परिणाम चाहते हैं जिन्हें साइट 100 को सौंपा गया है:

select p.PeopleID,
    rtrim(xmlagg(
                xmlelement(e, s.SiteName, ',') order by s.SiteId
            ).extract('//text()').getclobval(), ',')
from people p
join site s on p.SiteID = s.SiteID
join (
    select distinct PeopleID
    from people
    where siteID = 1
    ) p2 on p.PeopleID = p2.PeopleID
group by p.PeopleID;


  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. Oracle LOB कैसे छोड़ें

  3. क्या Oracle NetSuite उन्नत PDF टेम्पलेट में समूह द्वारा और SUM कार्य हैं?

  4. आदेशित परिणाम सेट से पंक्तियों का 'रन' ढूँढना

  5. Xmlagg फ़ंक्शन के साथ SQL एकाधिक चयन क्वेरी- आवश्यक फैशन में डेटा नहीं खींचा गया