http://community.csdn.net/Expert/TopicView3.asp?id=5757143
这里有答案

解决方案 »

  1.   

    然后 select C.userid,C.typeid,B.name from C left join B on C.typeid=B.typeid
      

  2.   

    --不用函数也可以做的
    declare @t1 table(id int,userid varchar(10),typeid varchar(50))
    declare @t2 table(typeid varchar(10),name varchar(20))
    insert into @t1
    select 1,'01','01,02,03,'
    union all select 2,'02','02,04,'
    insert into @t2
    select'01','老虎'
    union all select '02','狮子'
    union all select '03','大象'
    union all select '04','兔子'
    union all select '05','猴子'
    --要得到
    --表C
    --userid  typeid   name
    --01      01       老虎
    --01      02       狮子
    --01      03       大象
    --02      02       狮子
    --02      04       兔子
    select a.userid,b.typeid,b.name
    from @t1 a left join @t2 b on charindex(','+b.typeid+',',','+a.typeid+',')>0
    order by a.userid,b.typeid/*结果
    userid     typeid     name
    ---------- ---------- --------------------
    01         01         老虎
    01         02         狮子
    01         03         大象
    02         02         狮子
    02         04         兔子
    */
      

  3.   

    ---1、
    Select 
          A.userid,
          B.typeid,
          B.name
    From 
        A
    Left Join B
    On 
       Charindex(','+B.typeid+',',','+A.typeid+',')>0
    Order By A.userid,B.typeid
    ---2、
    Select 
          A.userid,
          B.typeid,
          B.name
    From 
        B
    Left Join A
    On 
         Charindex(','+B.typeid+',',','+A.typeid+',')>0
    Where 
         A.userid Is Not Null
    Order By 
         A.userid,B.typeid
      

  4.   

    ---创建测试环境
    Create Table A(id int,userid varchar(10),typeid varchar(10))
      Insert A Select  1,   '01',      '01,02,03,'
      Union All Select 2,   '02',      '02,04,'
    Go
    Create Table B(typeid varchar(10),name varchar(10))
      Insert B Select  '01',       '老虎'
      Union All Select '02',       '狮子'
      Union All Select '03',       '大象'
      Union All Select '04',       '兔子'
      Union All Select '05',       '猴子'
    Go
    ---查询结果
    Select 
          A.userid,
          B.typeid,
          B.name
    From 
        A
    Left Join B
    On 
       Charindex(','+B.typeid+',',','+A.typeid+',')>0
    Order By A.userid,B.typeid---清除测试环境
    Drop Table A,B
    ---结果
    /*
    userid     typeid     name       
    ---------- ---------- ---------- 
    01         01         老虎
    01         02         狮子
    01         03         大象
    02         02         狮子
    02         04         兔子(所影响的行数为 5 行)
    */