複数の SQL Server 行のテキスト データを結合する: 総合ガイド
多くの SQL Server ユーザーは、複数行のテキスト データを 1 つの文字列に結合する必要があります。これは、レポートの生成、データの結合、文字列ベースの計算に非常に役立ちます。
名前のリストが含まれるテーブルを想像してください。
<code>Peter Paul Mary</code>
目的は、カンマ区切りの文字列を作成することです: Peter, Paul, Mary
方法 1: SQL Server 2017 以降の場合 (STRING_AGG)
SQL Server 2017 と Azure SQL Database は、効率的な STRING_AGG
機能を提供します。
<code class="language-sql">SELECT STRING_AGG(Name, ', ') AS ConcatenatedNames FROM TableName;</code>
方法 2: XML 解析 (古い SQL Server バージョンの場合)
以前の SQL Server バージョンの場合、XML 解析が解決策を提供します。
<code class="language-sql">SELECT LEFT( ( SELECT Name + ',' AS [text()] FROM TableName ORDER BY Name FOR XML PATH('') ).value('.', 'nvarchar(max)'), LEN(( SELECT Name + ',' AS [text()] FROM TableName ORDER BY Name FOR XML PATH('') ).value('.', 'nvarchar(max)')) - 1 ) AS ConcatenatedNames FROM TableName;</code>
方法 3: STUFF 関数を使用する
STUFF
関数は別のアプローチを提供します。
<code class="language-sql">SELECT STUFF( ( SELECT ',' + Name FROM TableName ORDER BY Name FOR XML PATH('') ).value('.', 'nvarchar(max)'), 1, 1, '' ) AS ConcatenatedNames FROM TableName;</code>
これらのメソッドは、SQL Server 内の複数の行のテキスト データを効率的に連結し、データの操作と集計を簡素化します。 SQL Server のバージョンに適した方法を選択してください。
以上がSQL Server で複数の行のテキスト データを連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。