SQL中多表联查中有逗号分隔的字符串,该如何解决
SQL中多表联查中有逗号分隔的字符串
举个例,大概是下面这样的结构
表A 表B
ID NAME 项目 人员
1 张三 A 2,3
2 李四 B 1,3
3 王二 C 2
需要查询得出的效果
项目 人员
A 李四,王二
B 张三,王二
C 李四
请问SQL语句应该怎么写? SQL SERVER 2008R
------解决思路----------------------
举个例,大概是下面这样的结构
表A 表B
ID NAME 项目 人员
1 张三 A 2,3
2 李四 B 1,3
3 王二 C 2
需要查询得出的效果
项目 人员
A 李四,王二
B 张三,王二
C 李四
请问SQL语句应该怎么写? SQL SERVER 2008R
------解决思路----------------------
with 表A( ID,name)
as(
select 1 ,'张三' union all
select 2 ,'李四' union all
select 3 ,'王二'
),
表B( 项目 , 人员)
as
(
select 'A' , '2,3' union all
select 'B' , '1,3' union all
select 'C' , '2'
)
select b.项目,
stuff((select ','+a.name
from 表A a
where ','+ b.人员 +',' like '%,'+cast(a.id as varchar(10))+',%' for xml path('') ),1,1,'') as 人员
from 表B b
/*
项目 人员
A 李四,王二
B 张三,王二
C 李四
*/