如何在MS SQL 数据库中将几列合并成一行

如何在MS SQL 数据库中将几列合并成一行,第1张

declare @tt table(A列 int, B列 int, C列 int, D列 varchar(100), E列 varchar(100) , F列 varchar(100))

insert into @tt values (1, 1, 1, '耐酸汗渍牢度(面料)','色泽变化', NULL)

insert into @tt values (1, 2, 1, '耐酸汗渍色牢度(面料)','涤布沾色', NULL)

insert into @tt values (2, 1, 1, '耐碱汗渍色牢度(里料)','棉布沾色', NULL)

insert into @tt values (2, 2, 1, '耐碱汗渍色牢度(里料)','色泽变化', NULL)

select A列,substring(D列,2,len(D列)) D列 from 

(

select t1.A列 as A列,'A'+t2.D列 as D列 from @tt t1 left join @tt t2

on t1.A列 = t2.A列 group by t1.A列,t2.D列

union all

select t1.A列 as A列,'B'+t2.E列 from @tt t1 left join @tt t2

on t1.A列 = t2.A列  group by t1.A列,t2.E列

--union all

--select  t1.A列 as A列,'C'+t2.F列 from @tt t1 left join @tt t2

--on t1.A列 = t2.A列  group by t1.A列,t2.F列

) tt group by  A列,D列

SELECT  

            A,

            GROUP_CONCAT( B  SEPARATOR  ','  ),

            GROUP_CONCAT( C  SEPARATOR   ','  )

FROM

            table_name 

GROUP BY

            A

1.GROUP_CONCAT()中的值为你要合并的数据的字段名

2.SEPARATOR 函数是用来分隔这些要合并的数据的 ,' ' 中是你要用哪个符号来分隔,可以直接不填符号默认为空值;

2.必须要用GROUP BY 语句来进行分组管理,不然所有的数据都会被合并成一条记录

参考链接

https://www.cnblogs.com/shoshana-kong/p/11147690.html


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9941188.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存