एक्सएमएल स्पष्टीकरण के लिए एसक्यूएल सर्वर 2005 - स्वरूपण में मदद की ज़रूरत है

मेरे पास एक संरचना है जिसमें निम्न संरचना है:

------------------------------
LocationID     | AccountNumber
------------------------------
long-guid-here | 12345
long-guid-here | 54321

एक और संग्रहीत प्रक्रिया में जाने के लिए, मुझे इस तरह दिखने के लिए एक्सएमएल की आवश्यकता है:

 
    12345
    54321

सबसे अच्छा मैं अब तक ऐसा करने में सक्षम हूं, इसे इस तरह प्राप्त कर रहा था:


मैं इस एसक्यूएल कथन का उपयोग कर रहा हूँ:

SELECT
    1 as tag,
    null as parent,
    AccountNumber as 'root!1!clientID'
FROM
    Location.LocationMDAccount
WHERE
    locationid = 'long-guid-here'
FOR xml EXPLICIT

अब तक, मैंने एमएसडीएन पृष्ठ पर दस्तावेज़ों को देखा है, लेकिन मैं वांछित परिणाम के साथ बाहर नहीं आया है।


@किलोग्राम,

आपने मुझे वास्तव में यह आउटपुट दिया:


  
    10705
  

मैं अब क्रिस लियोन से xml एक्सप्लोरिट के साथ चिपकने जा रहा हूं।

0
जोड़ा संपादित
विचारों: 3

5 उत्तर

मुझे इसके साथ मिला:

select
1 as tag,
null as parent,
AccountNumber as 'root!1!clientID!element'
from
Location.LocationMDAccount
where
locationid = 'long-guid-here'
for xml explicit
0
जोड़ा

कोशिश करो, क्रिस:

SELECT
    AccountNumber as [clientId]
FROM
    Location.Location root
WHERE
    LocationId = 'long-guid-here'
FOR
    xml AUTO, ELEMENTS

बहुत खेद है! मैंने जो जोड़ा था उसे मिलाया। मैं केवल बनाए रखने की आसानी के लिए एक्सएमएल ऑटो पसंद करता हूं, लेकिन मेरा मानना ​​है कि कोई भी प्रभावी है। निरीक्षण के लिए मेरी माफ़ी ;-)

0
जोड़ा
SELECT 1             as tag,
       null          as parent,
       AccountNumber as 'clientID!1!!element'
FROM Location.LocationMDAccount
WHERE locationid = 'long-guid-here'
FOR xml EXPLICIT, root('root')
0
जोड़ा

प्रयत्न

SELECT
    1 AS Tag,
    0 AS Parent,
    AccountNumber AS [Root!1!AccountNumber!element]
FROM
    Location.LocationMDAccount
WHERE
    LocationID = 'long-guid-here'
FOR xml EXPLICIT
0
जोड़ा

एसक्यूएल सर्वर 2005 (या संभवतः 2008) का उपयोग करके मुझे एक्सएमएल पाथ के लिए एक्सएमएल स्पष्टीकरण (विशेष रूप से एसक्यूएल लंबे समय तक) के मुकाबले एसक्यूएल को बनाए रखना बहुत आसान है।

इस मामले में:

SELECT AccountNumber as "clientID"
FROM Location.LocationMDAccount
WHERE locationid = 'long-guid-here'
FOR xml PATH (''), Root ('root');
0
जोड़ा