--创建(临时)表
create table #A(
id int,
a_name varchar(50)
);
create table #B(
id int,
a_id varchar(50),
b_name varchar(50)
);
--插入数据
insert into #A values(1,'张某某');
insert into #A values(2,'李某');
insert into #A values(3,'刘某');
insert into #A values(4,'赵某某');
insert into #A values(5,'王某某');
insert into #A values(6,'齐某某');
insert into #B values(1,'1,3','客服');
insert into #B values(2,'2,3','经理');
insert into #B values(3,'4,5,6','销售');
--查询(其中group_idx是重复字段所在的序号(row_number()函数)),选取第一条
select *
from (
select #A.id as aid,a_name,#B.id as bid,b_name,a_id as aids,
row_number() over (partition by b_name order by a_name) as group_idx,
stuff((select ',' + a_name from #A where (CHARINDEX(CAST(#A.id as varchar),#B.a_id,0)>0) for xml path('')), 1, 1, '')as p
from #A,#B
where CHARINDEX(CAST(#A.id as varchar),#B.a_id,0)>0
) as C
where group_idx=1
--记得删除
--drop table #A;
--drop table #B;
--ps:可以设置其他筛选条件
--ps:新人,有什么不对的地方请指出.谢谢
create table #A(
id int,
a_name varchar(50)
);
create table #B(
id int,
a_id varchar(50),
b_name varchar(50)
);
--插入数据
insert into #A values(1,'张某某');
insert into #A values(2,'李某');
insert into #A values(3,'刘某');
insert into #A values(4,'赵某某');
insert into #A values(5,'王某某');
insert into #A values(6,'齐某某');
insert into #B values(1,'1,3','客服');
insert into #B values(2,'2,3','经理');
insert into #B values(3,'4,5,6','销售');
--查询(其中group_idx是重复字段所在的序号(row_number()函数)),选取第一条
select *
from (
select #A.id as aid,a_name,#B.id as bid,b_name,a_id as aids,
row_number() over (partition by b_name order by a_name) as group_idx,
stuff((select ',' + a_name from #A where (CHARINDEX(CAST(#A.id as varchar),#B.a_id,0)>0) for xml path('')), 1, 1, '')as p
from #A,#B
where CHARINDEX(CAST(#A.id as varchar),#B.a_id,0)>0
) as C
where group_idx=1
--记得删除
--drop table #A;
--drop table #B;
--ps:可以设置其他筛选条件
--ps:新人,有什么不对的地方请指出.谢谢