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;