---就是根据我的mid号取出 产品名称来,取出来的值。/*--------建表及初始数据
create table tb(mid varchar(20),prodct varchar(20))
insert into tb 
select '17','电脑'
union all select '18','电视'
union all select '19','笔记本'
*/
declare @mid varchar(30),@sql varchar(1000)
set @mid='16,17'set @mid =''''+replace(@mid,',',''',''')+''''
print @mid--最好用这种方法,查出数据来
select *  from  [Tb] where mid in(@mid)--方法二 下面这种方法是可以的查处结果的,但不方便
set @sql='select *  from  [Tb] where mid in('+@mid+')'
print @sql
exec (@sql)/*
print select *  from  [Tb] where mid in('16','17')17 电脑
*/

解决方案 »

  1.   

    select *  from  [Tb] where mid in(@mid)
    -->
    select *  from  [Tb] where charindex(','+ltrim(mid)+',',','+@mid+',')>0
      

  2.   

    select *  from  [Tb] where charindex(','+ltrim(mid)+',',','+@mid+',')>0
      

  3.   

    用in就要用动态了
    exec()
    你嫌麻烦的那种
      

  4.   

    用like也行.select *  from  [Tb] where ','+@mid+',' like '%,'+ltrim(mid)+',%'
      

  5.   

    IN需要用到变量的 不想用变量 就用LIKE,CHARINDEX,PATINDEX吧