首页 > 数据库 > 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
登录后复制

在查询:

  • @T 表示包含 Response_ID 和 Label 列的输入表。
  • 将数据插入到 @T 中作为查询的起点。
  • 第一个子查询检索每个 Response_ID 的标签值并用逗号将它们连接起来。 FOR XML 子句生成一个 XML 字符串,然后使用 VALUE('','VARCHAR(MAX)') 表达式将其转换为单个字符串。
  • 外部查询按 Response_ID 对结果进行分组并使用 STUFF () 将组合的标签值与 Response_ID 连接起来。
  • 最后,它显示每个唯一的连接值Response_ID。

以上是如何在 SQL 中根据匹配 ID 连接标签?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板