SELECT agenda.AgendaItemNumber,
Agenda.AgendaName,
AgendaType.AgendaTypeDescription,
STUFF(( SELECT ';' + FullName
FROM UserDetails
WHERE UserDetails.AgendaID = Agenda.AgendaID
FOR XML PATH('')
), 1, 1, '') AS fullName
FROM Agenda
INNER JOIN AgendaType
ON AgendaType.AgendaTypeID=Agenda.AgendaTypeID
INNER JOIN UserDetails
ON Agenda.AgendaID = Userdetails.AgendaID
WHERE agenda.AgendaTypeID = '2'
AND AgendaItemNumber = AgendaItemNumber
AND AgendaName = AgendaName
AND AgendaTypeDescription = AgendaTypeDescription
AND AgendaItemNumber >= '3'
अनुलग्नक
SQL-सर्वर में XML एक्सटेंशन आपको कई पंक्तियों को एक पंक्ति में संयोजित करने की अनुमति देता है। एक्सटेंशन का वास्तविक इरादा यह है कि आप एक्सएमएल (जाहिर है) के रूप में आउटपुट कर सकते हैं, लेकिन कुछ निफ्टी ट्रिक्स हैं जो एक्सटेंशन के उपोत्पाद हैं। उपरोक्त क्वेरी में, यदि सबक्वेरी (पूर्णनाम) में एक कॉलम नाम होता तो यह <FullName>Joe Bloggs1</FullName><FullName>Joe Bloggs2</FullName>
के रूप में आउटपुट होता है। , क्योंकि कोई कॉलम नाम नहीं है, यह केवल पंक्तियों को जोड़ता है (उचित एक्सएमएल नहीं बना रहा है)। PATH
part आपको एक अतिरिक्त नोड निर्दिष्ट करने की अनुमति देता है, उदाहरण के लिए यदि आप उपरोक्त में PATH('Name') का उपयोग करते हैं तो आपको <Name>;Joe Bloggs</Name><Name>;Joe Bloggs2</Name>
यदि आप पाथ को एक कॉलम नाम के साथ जोड़ते हैं तो आपको जो ब्लॉग्स मिलेंगे।
अंत में STUFF
बस सूची के प्रारंभ में अर्धविराम हटा देता है।