中午看一个这样的贴子:
http://topic.csdn.net/u/20110715/10/3170842f-326d-4794-b019-404efa4109f9.html?6512
于是突发奇想,把in改成likedeclare @s varchar(10)='1,2,3'
select * from Material.MeasureUnit 
where UnitID like '['+@s+']'在本人的数据库测试通过,现请大家说说,这样做会不会出错,比如漏掉或多出行

解决方案 »

  1.   

    declare @s varchar(10)='11,2,3'
    select * from Material.MeasureUnit 
    where UnitID like '['+@s+']'就怕UnitID为1时,上面也匹配成功了
      

  2.   


    select case when 1 like '[11,2,3]' then 1 else 0 end/***********1
      

  3.   

    我觉得这个问题必须得有一个比较好的解决方法,
    请大家看看下列代码,是否有问题
    declare @s as varchar(8000)='1,2,3,4,5,6,12,25,112'
    select * from Material.MeasureUnit
    where CHARINDEX (CAST( UnitID as varchar(90)) ,@s)<>0