यहां बताया गया है कि यह कैसे काम करता है:
<मजबूत>1. XML के लिए XML तत्व स्ट्रिंग प्राप्त करें
किसी क्वेरी के अंत में XML PATH को जोड़ने से आप क्वेरी के परिणामों को XML तत्वों के रूप में आउटपुट कर सकते हैं, जिसमें PATH तर्क में तत्व नाम शामिल है। उदाहरण के लिए, यदि हमें निम्नलिखित कथन चलाना है:
SELECT ',' + name
FROM temp1
FOR XML PATH ('')
एक खाली स्ट्रिंग (XML PATH('') के लिए) में पास करने पर, हमें इसके बजाय निम्नलिखित मिलते हैं:
,aaa,bbb,ccc,ddd,eee
<मजबूत>2. STUFF के साथ प्रमुख अल्पविराम निकालें
STUFF कथन शाब्दिक रूप से एक स्ट्रिंग को दूसरे में "स्टफ" करता है, पहली स्ट्रिंग के भीतर वर्णों को प्रतिस्थापित करता है। हालांकि, हम इसका उपयोग केवल मूल्यों की परिणामी सूची के पहले वर्ण को हटाने के लिए कर रहे हैं।
SELECT abc = STUFF((
SELECT ',' + NAME
FROM temp1
FOR XML PATH('')
), 1, 1, '')
FROM temp1
STUFF
. के पैरामीटर हैं:
- "भरवां" स्ट्रिंग (हमारे मामले में, अल्पविराम के साथ नाम की पूरी सूची)
- अक्षरों को हटाना और सम्मिलित करना प्रारंभ करने का स्थान (1, हम एक रिक्त स्ट्रिंग में भर रहे हैं)
- हटाए जाने वाले वर्णों की संख्या (एक प्रमुख अल्पविराम होने के कारण)
तो हम इसके साथ समाप्त होते हैं:
aaa,bbb,ccc,ddd,eee
<मजबूत>3. पूरी सूची प्राप्त करने के लिए आईडी पर जुड़ें
इसके बाद हम नाम के साथ आईडी की सूची प्राप्त करने के लिए अस्थायी तालिका में आईडी की सूची में शामिल हो जाते हैं:
SELECT ID, abc = STUFF(
(SELECT ',' + name
FROM temp1 t1
WHERE t1.id = t2.id
FOR XML PATH (''))
, 1, 1, '') from temp1 t2
group by id;
और हमारे पास हमारा परिणाम है:
आशा है कि यह मदद करेगा!