SQL Serverで複数の行を単一のカンマ区切り列に連結するにはどうすればよいですか?
複数の SQL Server 行を単一のカンマ区切り列に結合する
このガイドでは、SQL Server 内でカンマ区切り値を使用して複数の行を 1 つの列に結合する方法を説明します。 このデータセットの例を使用してみましょう:
[TicketID], [Person] T0001 Alice T0001 Bob T0002 Catherine T0002 Doug T0003 Elaine
私たちの目標は、次の出力を達成することです:
[TicketID], [People] T0001 Alice, Bob T0002 Catherine, Doug T0003 Elaine
解決策 (SQL Server 2005 以降):
次の SQL クエリは、STUFF
関数を利用して値を効率的に連結します。
SELECT t.TicketID, STUFF(ISNULL((SELECT ', ' + x.Person FROM @Tickets x WHERE x.TicketID = t.TicketID GROUP BY x.Person FOR XML PATH (''), TYPE).value('.','VARCHAR(max)'), ''), 1, 2, '') AS People FROM @Tickets t GROUP BY t.TicketID;
説明:
- このソリューションは SQL Server 2005 以降のバージョンと互換性があります。
-
STUFF
関数は、文字列の一部を別の文字列に置き換えます。 ここでは、先頭のカンマを削除します。 -
FOR XML PATH
句はデータの XML 表現を構築し、.value('.','VARCHAR(max)')
を使用してカンマ区切りの文字列に変換します。 これは、SQL Server の文字列集計の一般的な手法です。 -
ISNULL
は、TicketID
に関連付けられている人物が 1 人だけである場合を処理し、エラーを防ぎます。
この方法は、SQL Server で複数の行を単一のカンマ区切り列に連結するための簡潔で効果的なソリューションを提供します。 @Tickets
を実際のテーブル名に置き換えることを忘れないでください。
以上がSQL Serverで複数の行を単一のカンマ区切り列に連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか?

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし)

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド

人気のあるMySQL GUIツール(MySQL Workbench、PhpMyAdminなど)は何ですか?

MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか?
