tab1
id userid
1   ,001,
2   ,002,
3   ,001,002,tab2
id   name
001  张三
002  李四我需要返回的结果集是:
id  userid  name
1   001     张三
2   002     李四
3   001     张三
3   002     李四“userid”不定长,表结构不能修改。谢谢

解决方案 »

  1.   

    select
        a.id,b.id as userid,b.name
    from
        tab1 a,
        tab2 b
    where
        charindex(','+b.id+',',a.userid)>0
      

  2.   

    declare @tab1 table(id int,userid varchar(20))
    insert into @tab1 select 1,',001,'
    insert into @tab1 select 2,',002,'
    insert into @tab1 select 3,',001,002,'declare @tab2 table(id varchar(20),name varchar(20))
    insert into @tab2 select '001','张三'
    insert into @tab2 select '002','李四'select
        a.id,b.id as userid,b.name
    from
        @tab1 a,
        @tab2 b
    where
        charindex(','+b.id+',',a.userid)>0
    order by
        a.id,userid/*
    id          userid               name                 
    ----------- -------------------- -------------------- 
    1           001                  张三
    2           002                  李四
    3           001                  张三
    3           002                  李四
    */