ホームページ > データベース > mysql チュートリアル > SQL Server で複数の行のテキスト データを連結するにはどうすればよいですか?

SQL Server で複数の行のテキスト データを連結するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-25 17:57:10
オリジナル
991 人が閲覧しました

How Can I Concatenate Text Data from Multiple Rows in SQL Server?

複数の 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 サイトの他の関連記事を参照してください。

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