मैं इसका उपयोग कर एक एक्सएमएल दस्तावेज उत्पन्न करने की कोशिश कर रहा हूंएसक्यूएल 2008 में एक्सएमएल फीचर्स लेकिन मैं एक ऐसे मुद्दे पर चल रहा हूं जहां दस्तावेज़ को दो नोड्स के समान नाम होने की आवश्यकता है लेकिन SQL सर्वर स्वचालित रूप से उसी नाम के साथ किसी भी नोड्स को जोड़ता है।
उदाहरण के लिए:
<Location>
<Address>Some Street</Address>
<Address>Some other info</Address>
</Location>
समस्या यह है कि जब मैं नीचे दिए गए एसक्यूएल को निष्पादित करके ऐसा करने का प्रयास करता हूं तो मुझे मिलता है:
<Location>
<Address>Some StreetSome other info</Address>
</Location>
यहां मैं डेटा का चयन कैसे कर रहा हूं:
SELECT CustomerStreet1 AS "location/address",
CustomerStreet2 AS "location/address"
FROM Customers
FOR XML PATH("Customer")
जबकि दो पता फ़ील्ड के बीच में एक और नोड चुना गया है, जो मैं देख रहा हूं, मुझे दो एड्रेस नोड्स को एक साथ रखने में सक्षम होना चाहिए।
उत्तर:
जवाब के लिए 3 № 1WITH customers (id, CustomerStreet1, CustomerStreet2) AS
(
SELECT 1, "Some Street", "Some other info"
UNION ALL
SELECT 2, "Second Street", NULL
)
SELECT id,
(
SELECT *
FROM (
SELECT CustomerStreet1 AS Address
UNION ALL
SELECT CustomerStreet2
) q
FOR XML PATH(""), TYPE
)
FROM customers
FOR XML PATH("Customers")