当前位置: 代码迷 >> Sql Server >> MSSQL,需要将A字段相同的,它的C字段去重合并,该如何解决
  详细解决方案

MSSQL,需要将A字段相同的,它的C字段去重合并,该如何解决

热度:18   发布时间:2016-04-27 14:33:54.0
MSSQL,需要将A字段相同的,它的C字段去重合并
表结构
table1
A:nvarchar(50) not null
C:nvarchar(max) null (包含多值,以逗号分割)

因为我的table1,是从多个表中抽取出来的数据,A很多是重复,但是C中的数据并不一样,
如果,A='Affected',则我需要将所有A='Affected'的C中的数据抽合并,并且去掉重复值.
或者是,选定长度最大的C,用后面的C去一个一个匹配,无,则拼接上去

------解决方案--------------------
SQL code
--2005及以上版本select A,stuff((select distinct ','+C from table1 where A=t.A for xml path('')),1,1,'') as Cfrom table1 tgroup by A
------解决方案--------------------
SQL code
--字段1 字段2--A 情报1--A 情报2--B 情报3--想获得以下结果--字段1 字段2--A 情报1,情报2--B 情报3 declare @t table (字段1 varchar(50), 字段2  varchar(50) )insert into @t values('A' ,'情报1')insert into @t values('A' ,'情报2')insert into @t values('B' ,'情报3') select 字段1,stuff((select ','+字段2 from @t where 字段1=t.字段1 for xml path('')),1,1,'')  as 字段2  from @t t group by 字段1字段1                                                字段2-------------------------------------------------- ----------------------------------------------------------------------------------------------------------------A                                                  情报1,情报2B                                                  情报3(2 行受影响)
  相关解决方案