select * from a,b where a.bd=1 and 
 charindex(a.aname, b.bname1+',' +b.bname2 +','+b.bname3) > 0

解决方案 »

  1.   

    select * from a,b where a.bd=1 and 
     charindex(','+a.aname+',', ','+b.bname1+',' +b.bname2 +','+b.bname3+',') > 0
      

  2.   

    我觉得是char的话还是用 or 快些
      

  3.   

    这样写
    (一)select a.aname from a,b where bd=1 and ((a.aname in (b.bname1)) or (a.aname in (b.bname2)) or (a.aname in (b.bname3)))
    不过这个和你那个一样返回的有重复纪录这样就没有重复记录了
    (二)select * from a where bd=1 and aname in (select bname1 from b union select bname2 from b union select bname3 from b)
    但是效率不如(一)高