首页 > 数据库 > mysql教程 > 如何连接具有逗号分隔列的表?

如何连接具有逗号分隔列的表?

Susan Sarandon
发布: 2025-01-03 05:04:40
原创
621 人浏览过

How to Join Tables with Comma-Delimited Columns?

连接逗号分隔的数据列

要连接两个包含逗号分隔数据列的表,请考虑以下操作方法:

标准化

通过为每个值创建一个单独的列来标准化包含逗号分隔值的表。这简化了查询并避免了复杂的字符串操作。

创建拆分函数

创建一个拆分函数,将逗号分隔的字符串转换为单独的行。这允许您对行执行联接。

使用 FOR XML PATH 和 STUFF

使用 FOR XML PATH 将值连接成逗号分隔的字符串和 STUFF删除前导逗号。

直接申请 FOR XML PATH

直接将 FOR XML PATH 应用于数据以生成所需的输出。

示例

将函数与连接

;with cte as
(
  select c.col1, t1.col2
  from t1
  inner join 
  (
    select t2.col1, i.items col2
    from t2
    cross apply dbo.split(t2.col2, ',') i
  ) c
    on t1.col1 = c.col2
) 
select distinct c.col1, 
  STUFF(
         (SELECT distinct ', ' + c1.col2
          FROM cte c1
          where c.col1 = c1.col1
          FOR XML PATH ('')), 1, 1, '') col2
from cte c
登录后复制

用于 XML 路径和内容

select col1, 
(
  select ', '+t1.col2
  from t1
  where ','+t2.col2+',' like '%,'+cast(t1.col1 as varchar(10))+',%'
  for xml path(''), type
).value('substring(text()[1], 3)', 'varchar(max)') as col2
from t2;
登录后复制

以上是如何连接具有逗号分隔列的表?的详细内容。更多信息请关注PHP中文网其他相关文章!

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