के लिए TSQL द्वारा बनाए गए ElementNode में विशेषता जोड़ें I SQL Server 2008 TSQL क्वेरी में कुछ XML आउटपुट से मिलान करने का प्रयास कर रहा हूं। मैं जो एक्सएमएल मेल कर रहा हूं वह वस्तुओं की सूची वापस कर सकता है। सूचियां विशेषता नाम द्वारा पहचानी जाती हैं - नोड नाम नहीं।XML पथ
एक्सएमएल पथ फ़ंक्शन एक रैपर नोड वापस कर देगा लेकिन मुझे उस नोड में कोई भी विशेषता जोड़ने का कोई तरीका नहीं मिल रहा है। मेरे मामले में वे टेबल नाम के आधार पर हार्ड कोड किए गए मान होंगे जिन्हें मैं चला रहा हूं।
मेरे पास दो सूचियों को अलग रखने के लिए 'x' के रूप में 'x' है। मेरे वास्तविक डेटा में यह कोई समस्या नहीं है क्योंकि ये अलग-अलग नोड्स में हैं। समस्या यह है कि "सूची" नोड में जोड़े गए गुण कैसे प्राप्त करें। जोड़ना "N (:
नमूना स्कीमा
create table Table1 (Value varchar(50));
create table Table2 (Value varchar(50));
insert Table1 values
('A'), ('B'), ('C');
insert Table2 values
('X'), ('Y'), ('Z');
नमूना वास्तविक उत्पादन
<row>
<List>
<L I="A"/>
<L I="B"/>
<L I="C"/>
</List>
<x>x</x>
<List>
<L I="X"/>
<L I="Y"/>
<L I="Z"/>
</List>
</row>
वांछित आउटपुट का चयन करें
select
(
select Value as '@I'
from Table1
for XML PATH('L'), TYPE
) as List,
'x' as 'x', -- needed to keep the Lists apart.
(
select Value as '@I'
from Table2
for XML PATH('L'), TYPE
) as List
for XML PATH
:
यहाँ एक SQL Fiddle page for the example below है एएम "सूची रैपर में विशेषता।)
<row>
<List Name='Table1'> <!-- Added Attribute "Name" here -->
<L I="A"/>
<L I="B"/>
<L I="C"/>
</List>
<x>x</x>
<List Name='Table2'> <!-- Added Attribute "Name" here -->
<L I="X"/>
<L I="Y"/>
<L I="Z"/>
</List>
</row>