SQL Server における STUFF と FOR XML PATH の賢い組み合わせ
SQL Server では、STUFF 関数と FOR XML PATH 関数を組み合わせることで、データに効率的に接続して処理できます。これら 2 つの関数がどのように連携して目的の出力を達成するかを見てみましょう。
FOR XML PATH の役割
FOR XML PATH クエリ結果を XML 要素の文字列に変換します。空の文字列を引数 ('') として FOR XML PATH に追加すると、カンマで区切られた値のリストが生成されます。例:
<code class="language-sql">SELECT ',' + name FROM temp1 FOR XML PATH ('')</code>
結果は次のとおりです:
<code>,aaa,bbb,ccc,ddd,eee</code>
STUFF役
STUFF 関数は、文字列内の文字を挿入または置換するために使用されます。開始位置と長さのパラメーターを 1 に指定すると、文字列の最初の文字が効果的に削除されます:
<code class="language-sql">STUFF( (SELECT ',' + NAME FROM temp1 FOR XML PATH('') ), 1, 1, '' )</code>
これにより、名前リストの先頭にあるカンマが削除されます:
<code>aaa,bbb,ccc,ddd,eee</code>
ID ベースの接続
最後に、Group By を使用して変更したリストを Id 列と結合し、集計して目的の出力を返します。
<code class="language-sql">SELECT ID, abc = STUFF( (SELECT ',' + name FROM temp1 t1 WHERE t1.id = t2.id FOR XML PATH ('')) , 1, 1, '') FROM temp1 t2 GROUP BY id;</code>
このコードは、SQL Server で STUFF と FOR XML PATH がどのように連携して目的の出力を生成するかを簡潔に説明しています。
以上がSTUFF と FOR XML PATH は SQL Server でどのようにデータを連結しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。