今天在群里看到有朋友问,怎么合并记录行呢?想想自己以前工作中有做过这些,贴出来,备忘吧
上面的图片就是原始数据和我们最终想要的结果,怎么来做呢?直接能想到的有2种方式:写函数OR使用SQL For Xml,写函数的方式没什么好写的,declare一个变量就可以搞定,SQL For Xml的语法有点记不大清楚【平时很少写SQL了】好在有联机帮助文档,下面是完整的代码:
declare @T table(tpe int,titles varchar(50)) insert into @T select 1,'A' union all select 1,'b' union all select 2,'A' union all select 2,'B' union all select 2,'C' union all select 2,'D' select * from @T select tpe, Tvalues=STUFF((SELECT '|' +CAST(titles AS varchar) FROM @T where tpe=a.tpe FOR XML PATH('')),1,1,'') from @t a group by tpe