表tb,2个字段:
AA varchar(20),BB varchar(20)数据内容:
A 张三
B 李四
C 王五
A 赵六
A 小三
B 王八
C 小蜜
A 张三...求结果:
AA BB
------------------
A 张三,赵六,小三
B 李四,王八
C 王五,小蜜说明:1.AA,BB存在相同的只取一次,如上面的 A 张三
2.结果BB不考虑顺序,如张三,赵六,小三 也可以排成赵六,小三,张三
3.结果按AA排序
AA varchar(20),BB varchar(20)数据内容:
A 张三
B 李四
C 王五
A 赵六
A 小三
B 王八
C 小蜜
A 张三...求结果:
AA BB
------------------
A 张三,赵六,小三
B 李四,王八
C 王五,小蜜说明:1.AA,BB存在相同的只取一次,如上面的 A 张三
2.结果BB不考虑顺序,如张三,赵六,小三 也可以排成赵六,小三,张三
3.结果按AA排序
declare @tb table(AA varchar(20),BB varchar(20))
insert @tb
select 'A','张三'
union all
select 'B', '李四'
union all
select 'C','王五'
union all
select 'A','赵六'
union all
select 'A','小三'
union all
select 'B','王八'
union all
select 'C','小蜜'
union all
select 'A','张三'
select AA, stuff((select distinct ',' + BB from @tb b where a.AA = b.AA for xml path('')),1,1,'') BB from @tb a
group by AA
--TRYdeclare @tb table (id nvarchar(10),name nvarchar(10))
insert into @tb select 'A','张三'
union all select 'B','李四'
union all select 'C','王五'
union all select 'A','赵六'
union all select 'A','小三'
union all select 'B','王八'
union all select 'C','小密'
union all select 'A','张三'
SELECT ID AA, BB=STUFF((SELECT DISTINCT ','+ NAME FROM @TB WHERE A.ID=ID FOR XML PATH ('')),1,1,'')
FROM @TB A GROUP BY ID
/*
AA BB
---------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
A 小三,张三,赵六
B 李四,王八
C 王五,小密
*/