ホームページ > データベース > mysql チュートリアル > SQL Server でデータを連結するために「FOR XML PATH」と「STUFF」をどのように組み合わせますか?

SQL Server でデータを連結するために「FOR XML PATH」と「STUFF」をどのように組み合わせますか?

Linda Hamilton
リリース: 2025-01-22 23:13:18
オリジナル
685 人が閲覧しました

How Do `FOR XML PATH` and `STUFF` Combine to Concatenate Data in SQL Server?

SQL Server の FOR XML PATH 関数と STUFF 関数の相乗効果

SQL Server では、FOR XML PATH 関数と STUFF 関数の組み合わせがデータの整理と結合に重要な役割を果たします。望ましい目標を達成するために、そのメカニズムを分析してみましょう:

1. 「FOR XML PATH」を使用して XML 要素文字列を抽出します

FOR XML PATH クエリ結果を XML 要素に変換します。要素名を省略すると、例に示すように、値のカンマ区切りリストが出力されます:

<code class="language-sql">SELECT ',' + name FROM temp1 FOR XML PATH('')</code>
ログイン後にコピー

2. STUFF を使用して先頭のカンマを削除します

STUFF は、指定された文字を置き換えることによって文字列を変更するために使用されます。この例では、XML 文字列の先頭のカンマを削除します:

<code class="language-sql">STUFF((SELECT ',' + NAME FROM temp1 FOR XML PATH('')), 1, 1, '')</code>
ログイン後にコピー

3. 結合を実行してリストを生成します

最後に、変更されたリストが「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>
ログイン後にコピー

この組み合わせにより、各 'Id' の 'Name' 列の値が効果的に連結され、期待される出力が得られます。

<code>Id |    Name
-------------------
1   | aaa,bbb,ccc,ddd,eee</code>
ログイン後にコピー

以上がSQL Server でデータを連結するために「FOR XML PATH」と「STUFF」をどのように組み合わせますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート