SQL中多表联查中有逗号分隔的字符串,该如何解决

SQL中多表联查中有逗号分隔的字符串
举个例,大概是下面这样的结构
       表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 李四
*/