ホームページ >データベース >mysql チュートリアル >SQL Server の STUFF 関数と FOR XML PATH 句を組み合わせてグループ内の文字列を連結するにはどうすればよいですか?
SQL Server: グループ化された文字列連結のための STUFF と FOR XML PATH の組み合わせ
このガイドでは、SQL Server の STUFF
関数と FOR XML PATH
句を一緒に使用して、グループ内の文字列を効率的に連結する方法について説明します。
コンポーネントの理解:
FOR XML PATH('')
: この句はクエリ結果を XML 形式に変換します。 ''
引数として空の文字列 (PATH
) を使用すると、指定された列から値のカンマ区切りのリストが生成され、XML タグで囲まれます。 例:
<code class="language-sql">SELECT ',' + name FROM temp1 FOR XML PATH('')</code>
これは次のように出力します: ,aaa,bbb,ccc,ddd,eee
STUFF
関数: STUFF
関数は、文字列の一部を置換して文字列を変更します。 ここでは、FOR XML PATH('')
によって生成された先頭のコンマを削除するために使用します。 関数のパラメータは次のとおりです:
したがって、STUFF((SELECT ',' NAME FROM temp1 FOR XML PATH('')), 1, 1, '')
は最初のコンマを削除し、次のようになります: aaa,bbb,ccc,ddd,eee
結合とグループ化: 最後のクエリは、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 | abc |
---|---|
1 | aaa,bbb,ccc,ddd,eee |
この方法は、SQL Server のグループ内の文字列を連結するための簡潔かつ効果的な方法を提供し、より複雑なテクニックの必要性を回避します。
以上がSQL Server の STUFF 関数と FOR XML PATH 句を組み合わせてグループ内の文字列を連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。