mysql string agg_【转】SQL Server一个字段串拆分成多行显示或者多行数据合并成一个字符串(STRING_AGG、STRING_SPLIT)...

目录

概述

STRING_AGG(合并):多行数据合并成一个字符串,以逗号隔开。

STRING_SPLIT(拆分):一个字符串,拆分成多行。

mysql string agg_【转】SQL Server一个字段串拆分成多行显示或者多行数据合并成一个字符串(STRING_AGG、STRING_SPLIT)..._第1张图片

一、多行数据合并成一个字符串

1、通过 FOR xml path('') 合并字符串记录

根据name字段,合并code

declare @table1 table ( id int ,code varchar(10) , name varchar(20) );insert into @table1 ( id,code, name ) values ( 1, 'm1','a' ), ( 2, 'm2',null ), ( 3, 'm3', 'c' ), ( 4, 'm2','d' ), ( 5, 'm1','c');select * from @table1;select name, files=stuff((select ','+convert(varchar, code)from @table1bwhere a.name=b.namefor xml path('')), 1, 1, '')from @table1agroup by name;

结果:

mysql string agg_【转】SQL Server一个字段串拆分成多行显示或者多行数据合并成一个字符串(STRING_AGG、STRING_SPLIT)..._第2张图片

2、MS SQL Server的2017新增了STRING_AGG()是一个聚合函数

它将由指定的分隔符分隔将字符串行连接成一个字符串。 它不会在结果字符串的末尾添加分隔符。

SELECT name, string_agg(code,';') files FROM @table1 GROUP BY name;

二、一个字符串拆分成多行

1、拆一列数据:

将如下从Excel复制的一栏数据,插入到表中行进显示(同时去掉回车换行符,空白和Tab符号)ÿ

你可能感兴趣的:(mysql,string,agg)