首页 > 数据库 > mysql教程 > 如何基于公共标识符连接多个 SQL 值?

如何基于公共标识符连接多个 SQL 值?

DDD
发布: 2024-12-30 22:21:10
原创
160 人浏览过

How to Concatenate Multiple SQL Values Based on a Common Identifier?

使用 SQL 基于通用标识符连接多个值

假设您有一个包含两列的表:Response_ID 和 Label,其中多个 Label值可以与每个Response_ID相关联。您可能会遇到需要连接每个唯一 Response_ID 的所有标签值的情况。

这可以使用以下 SQL 语句来实现:

-- Sample data
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')

-- Query to concatenate Label values
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
登录后复制

说明:

  • 子查询 (select ',' T2.Label ...) 将每个 Response_ID 的 Label 值连接成单个字符串,用逗号分隔。 for xml path(''), type 子句将连接的字符串转换为 XML 片段。
  • .value('.', 'varchar(max)') 部分处理 Label 包含以下字符的情况可能会导致 XML 解析错误,例如 &.
  • stuff(...) 函数会删除连接的前导逗号字符串。
  • 最后,group by 子句聚合每个唯一 Response_ID 的串联标签值。

结果将是一个表,每个 Response_ID 一行,以及串联标签值用逗号分隔。

以上是如何基于公共标识符连接多个 SQL 值?的详细内容。更多信息请关注PHP中文网其他相关文章!

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