你那样当然不行了。你(select worker_no from master_worker where master_no='4442')得出的是‘0001,0002,0003‘这个字符串。

解决方案 »

  1.   

    declare @s as varchar(8000)
    select @s=worker_no from master_worker where master_no='4442'
    select * from person where charindex(','+cast(w_no as varchar)+',',','+@s+',')>0
      

  2.   

    charindex(cast(id as varchar),@s) --不可以的!!
    加","是为了匹配字符串!!
      

  3.   

    你这个就类似于树表了,你可以把表结构改成这个样子!不就轻松了??
    master_no   worker_no
     4442       0001
     4442       0002
     4442       0003
      

  4.   

    charindex(cast(id as varchar),@s)可以啊,我试过了,查询结果正确了
    而且id本来就是varchar型,charindex(id,@s)就OK了,呵呵谢谢了,给分