1

SQL テーブルに 3 つの XML 列 (XML を格納するために使用される単一行テーブル) があり、XML 構造は次のようになります。

列 1 -

<Column1XML>
    ....
</Column1XML>

列 2 で -

<Column2XML>
    ....
</Column2XML>

列 3 で -

<Column3XML>
    ....
</Column3XML>

私が探している最終的な結果の XML は次のとおりです。

<SomeTagName>
    <Column1XML>
        ....
    </Column1XML>
    <Column2XML>
        ....
    </Column2XML>
    <Column3XML>
        ....
    </Column3XML>
</SomeTagName>

文字列の連結を行わずに、この必要な構造を取得するにはどうすればよいですか? 型付き XML を使用する方法があるに違いないと確信しています。

私の質問を調べてくれてありがとう。

4

1 に答える 1

2

2 つの方法があります。

サンプルデータ

declare @T table
(
  Col1 xml,
  Col2 xml,
  Col3 xml
)

insert into @T values
(
'<Column1XML></Column1XML>',
'<Column2XML></Column2XML>',
'<Column3XML></Column3XML>'
)

ルート名を列エイリアスとして使用する

select Col1 as 'SomeTagName',
       Col2 as 'SomeTagName',
       Col3 as 'SomeTagName' 
from @T
for xml path('')

*列エイリアスとして使用し、 path().

select Col1 as '*',
       Col2 as '*',
       Col3 as '*' 
from @T
for xml path('SomeTagName')

結果:

<SomeTagName>
  <Column1XML />
  <Column2XML />
  <Column3XML />
</SomeTagName>
于 2012-07-17T07:00:12.450 に答える