ホームページ > データベース > mysql チュートリアル > SQL ServerでGROUP BYを使用して文字列を連結するにはどうすればよいですか?

SQL ServerでGROUP BYを使用して文字列を連結するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-25 02:15:12
オリジナル
521 人が閲覧しました

How to Concatenate Strings Using GROUP BY in SQL Server?

SQL Serverのステートメントでグループを使用して文字列を接続します

多くのデータ分析シナリオでは、パブリックロゴシンボル内のグループの複数の列の複数の列の文字列を接続する必要があります。これにより、レポートのデータを効果的に要約および操作できます。

SQL Serverでこの目的を達成するには、XMLおよびPATH関数の節と巧妙な使用によって強力なグループを使用できます。この方法は、ラベル、サイクル、またはユーザー定義関数を使用する必要のない効率的で直接的なソリューションを提供します。

次の例データを検討してください:

あなたの目標は、このデータを次の出力に変換することです。
<code>id       Name       Value
1          A          4
1          B          8
2          C          9</code>
ログイン後にコピー
このタスクを完了するには、次のSQLクエリを使用できます。

クエリを分解しましょう:
<code>id          Column
1          A:4, B:8
2          C:9</code>
ログイン後にコピー

関数は、各グループの文字列をコンマ分離のリストに接続します。 これは、古い方法よりも簡潔で簡単な - 読み取りソリューションを提供します。
CREATE TABLE #YourTable ([ID] INT, [Name] CHAR(1), [Value] INT)

INSERT INTO #YourTable ([ID],[Name],[Value]) VALUES (1,'A',4)
INSERT INTO #YourTable ([ID],[Name],[Value]) VALUES (1,'B',8)
INSERT INTO #YourTable ([ID],[Name],[Value]) VALUES (2,'C',9)

SELECT 
  [ID],
  STRING_AGG([Name] + ':' + CAST([Value] AS VARCHAR(MAX)), ', ') AS NameValues
FROM #YourTable 
GROUP BY ID

DROP TABLE #YourTable
ログイン後にコピー

このSQLクエリは、ID列に従ってデータを効果的にパックし、各グループの各行の名前と値列を接続して、必要な出力を取得します。 コードを簡素化して、理解して維持しやすくします。 SQL Server 2017以上のバージョンの場合、この方法を強くお勧めします。

以上がSQL ServerでGROUP BYを使用して文字列を連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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