有个字段VIPUsers是varchar(500),属于TableA,里面保存的是类似这样:1,2,3,8,5,6,15现在我想设计这样一个查询declare @IDList varchar(500)
select @IDList = VIPUsers from TableA where....
select * from TableB where userID in @IDList and....请大家再帮帮忙,怎么实现?

解决方案 »

  1.   

    declare @IDList varchar(500) 
    select @IDList = VIPUsers from TableA where.... 
    select * from TableB where charindex(','+ltrim(userID)+',',','+ @IDList+',') > 0  
      

  2.   

    declare @IDList varchar(500) 
    select @IDList = VIPUsers from TableA where.... 
    select * from TableB where charindex(','+ltrim(userID)+',',','+ @IDList+',') > 0 
      

  3.   


    支持.
    declare @IDList varchar(500) 
    select @IDList = VIPUsers from TableA where.... 
    select * from TableB where charindex(','+ltrim(userID)+',',','+ @IDList+',') > 0 
      

  4.   

    declare @IDList varchar(500) 
    select @IDList = VIPUsers from TableA where.... 
    select * from TableB where ','+@IDList+',' like '%,'+ltrim(userID)+',%'
      

  5.   

    select * from TableB 
    where userID in (select distinct VIPUsers from TableA where... )
    and ...
      

  6.   

    --呵呵,昨晚上才写的一个例子,参考 :)
    declare @tb table(id int ,ct nvarchar(10))
    insert into @tb 
    select 1,'12'
    union all select 2,'cc'
    union all select 3,'ss'
    union all select 4,'df'
    union all select 5,'ww'
    union all select 6,'gg'
    declare @tbB table(id int, Aid nvarchar(10))
    insert into @tbB
    select 1, '1,2'
    union all select 2,'1,2,3'select * from @tb A 
         where (select ','+rtrim(ltrim(Aid))+',' from @tbB B where b.id =2) 
               like '%,'+convert(nvarchar(10),A.id) +',%'/*
    id          ct
    ----------- ----------
    1           12
    2           cc
    3           ss*/