本帖最后由 wglzaj740806 于 2012-06-08 14:24:22 编辑

解决方案 »

  1.   

    declare @v_value varchar(32)
    set @v_value ='''600600'',''600112'''
    declare @sql varchar(max)
    set @sql='select * from Show2003 where S1 in ('+@v_value +')'
    print @sql
    ---select * from Show2003 where S1 in ('600600','600112')
      

  2.   

    你传入的参数是一个字符串,建议你这样试试
    select * from Show2003 where S1 charindex(S1,?)
      

  3.   

    在SQL SERVER 中 两个 ''  代表 一个 ' 
      

  4.   

    这种传递参数的方式,再传递到IN里面去实际上SQL是把整个参数当成一个string类型来处理的,所以不管你怎么写都相当于 IN ('ssssssssss.....'),不管里面什么格式。这种情况想达到效果,要不然拼接SQL执行,要不然用charindexselect * from show2003 where CHARINDEX(S1,?) > 0  --传参数就可以了
      

  5.   

    直接select * from tb where charindex(S1,?)>0啊,干嘛还需要去拼接?你传过来的参数就是这个问号