मैं टीएसक्यूएल में FOR XML PATH('')
का उपयोग करके एक विशिष्ट कॉलम द्वारा कॉलम मानों को समूहबद्ध करने का प्रयास कर रहा हूं। (ध्यान देंटीएसक्यूएल: एक्सएमएल पाथ ('') के लिए विफल होने के लिए
Class | Animals
=================================
Asteroidea | Starfish
Mammalia | Dog
Mammalia | Cat
Mammalia | Coyote
Reptilia | Crocodile
Reptilia | Lizard
अनुसार this article और this article है कि दूसरे लेख बाहर छोड़ देता है: यह दोनों ही मामलों में परिणाम (-: - SELECT * FROM @xml
में ही है के रूप में XML कोड के साथ यानी ध्यान दें कि एक्सएमएल बिना कोड) है - GROUP BY
, जो मैं अनिश्चित कैसे लेखक इसके बिना इस पुल करने में कामयाब रहा हूँ मैं कोशिश की है और यह केवल सभी मूल्यों को उत्पन्न करता है), वाक्य रचना के रूप में इस नीचे दिखाया जाना चाहिए:
DECLARE @xml TABLE(
Animal VARCHAR(50),
Class VARCHAR(50)
)
INSERT INTO @xml
VALUES ('Dog','Mammalia')
, ('Cat','Mammalia')
, ('Coyote','Mammalia')
, ('Starfish','Asteroidea')
, ('Crocodile','Reptilia')
, ('Lizard','Reptilia')
SELECT x1.Class
, STUFF((SELECT ',' + x2.Animal AS [text()]
FROM @xml x2
WHERE x1.Animal = x2.Animal
ORDER BY x2.Animal
FOR XML PATH('')),1,1,'') AS "Animals"
FROM @xml x1
GROUP BY Class
में कुछ करने के बाद घंटे, इन उदाहरणों और उपर्युक्त कोड के बीच, मैं यह देखने में असफल रहा कि मैं वाक्यविन्यास पर गलत कहां हूं, लेकिन मुझे एर प्राप्त हो रहा है रोर "कॉलम '@ xml.Animal' चुनिंदा सूची में अमान्य है क्योंकि यह या तो कुल कार्य या ग्रुप बाय क्लॉज में निहित नहीं है।" ध्यान दें कि यदि मैं ग्रुप बाय क्लॉज को छोड़ देता हूं, तो यह अभी भी उचित तरीके से मूल्यों का उत्पादन नहीं करता है। आंखों का एक और सेट उपयोगी होगा।