2016-05-18 1 views
0
DECLARE @outputXML xml 
CREATE TABLE #Temp (a varchar(128), xmlelement xml) 
INSERT INTO #Temp values('1', N'<list id="1"/><list id="2"/>') 
INSERT INTO #Temp values('3', N'<list id="3"/><list id="4"/>') 

set @outputXML=(SELECT a as '@id', xmlelement as 'SecondMasterList' from #Temp 
FOR XML PATH('MasterList')) 

select @outputXML 

DROP TABLE #Temp 

上記のスクリプト@outputXMLは、以下のXMLテーブルからXMLのXML列を選択します(別のXMLノードにネストされるのではなく)。

必要
<MasterList id="1"> 
<SecondMasterList><list id="1" /><list id="2" /></SecondMasterList> 
</MasterList> 
<MasterList id="3"> 
<SecondMasterList><list id="3" /><list id="4" /></SecondMasterList> 
</MasterList> 

スロー: をしかし、私はoutputXMLの<list><MasterList>の直下にネスト@必要です。すなわち、それを入れ子にすることなく、下<SecondMasterList>

予想される出力:

<MasterList id="1"> 
<list id="1" /><list id="2" /> 
</MasterList> 
<MasterList id="3"> 
<list id="3" /><list id="4" /> 
</MasterList> 

は、私は、クエリが期待される出力用に変更する方法を教えてください。 ご迷惑をおかけして申し訳ありません。

答えて

2

属性

set @outputXML=(SELECT a as 'MasterList/@id', xmlelement as 'MasterList' from #Temp 
FOR XML PATH('')) 
のパスを指定します
関連する問題