0

グループごとの値を 1 つの XML に集約しようとしています。私はSQL Server 2016を使用しています。

私の生データは次のようになります (ここでは問題を厳密に規定しています。私の実際の値は一般的ではありません)。

create table #data (group_id int, value1 char(10), value2 char(10), value3 char(10));

insert #data values 
(1,'a1', 'b1', 'c1'),
(1,'a2', 'b2', 'c2'),
(1,'a3', 'b3', 'c3'),
(2,'a4', 'b4', 'c4');

(グループごとに) 1 つの XML を返す集計関数を探しています。

select 
  group_id,
  **my_XML_aggregation** as [XML-values]
from #data
group by group_id

最初のグループ (group_id = 1) の期待される結果 XML は次のようになります (要素の名前は問題には関係ありません)。

<group>
   <row>
     <value1>a1<value1>
     <value2>b1<value1>
     <value3>c1<value1>
  </row>
   <row>
     <value1>a2<value1>
     <value2>b2<value1>
     <value3>c2<value1>
  </row>
   <row>
     <value1>a3<value1>
     <value2>b3<value1>
     <value3>c3<value1>
  </row>
</group>

パターンで区切られた文字列を集約する方法を知っています。これではうまくいきません。パターンで集約された文字列を 1 つの XML 要素に入れることも、代替手段ではありません。XML 内の構造化された情報を探しています。

4

1 に答える 1