ホームページ > データベース > mysql チュートリアル > SQL で一致する ID に基づいてラベルを連結するにはどうすればよいですか?

SQL で一致する ID に基づいてラベルを連結するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-30 22:06:15
オリジナル
720 人が閲覧しました

How Can I Concatenate Labels Based on Matching IDs in SQL?

ID に基づいた値の連結

同じ ID を持つ複数の行を結合し、対応するラベルを連結するという提供されたタスクを解決するには、次の SQL クエリ:

declare @T table(Response_ID int, Label varchar(50))
insert into @T values
(12147,          'It was not clear'),
(12458,          'Did not Undersstand'),
(12458,          'Was not resolved'),
(12458,          'Did not communicate'),
(12586,          'Spoke too fast'),
(12587,          'Too slow')

select T1.Response_ID,
       stuff((select ','+T2.Label
              from @T as T2
              where T1.Response_ID = T2.Response_ID
              for xml path(''), type).value('.', 'varchar(max)'), 1, 1, '') as Label
from @T as T1
group by T1.Response_ID
ログイン後にコピー

内query:

  • @T は、Response_ID 列と Label 列を持つ入力テーブルを表します。
  • データは、クエリの開始点として @T に挿入されます。
  • 最初のサブクエリは、各 Response_ID の Label 値を取得し、それらをカンマで連結します。 FOR XML 句は XML 文字列を生成し、VALUE('','VARCHAR(MAX)') 式を使用して単一の文字列に変換します。
  • 外側のクエリは結果を Response_ID ごとにグループ化し、STUFF を使用します。 () を使用して、結合された Label 値と Response_ID を連結します。
  • 最後に、一意のそれぞれの連結された値が表示されます。 Response_ID.

以上がSQL で一致する ID に基づいてラベルを連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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