select * from Table1 where charindex(','+[column]+',',','+@test+',')>0 

解决方案 »

  1.   

    看了相关文档, charindex 只是找字符串的位置。
    declare @test varchar(50) 
    set @test = 'test1, test2, test3' 请问怎么写下面这句 
    select * from Table1 where column in (@test) 
    可是我想要的效果是 column 列中分别有 test1 或者 test2 或者 test3
    而这句只会返回有 test1 的
    select * from Table1 where charindex(','+[column]+',',','+@test+',')>0 
      

  2.   


    exec('select * from Table1 where column in ('+@test+')')
      

  3.   

    Set @test = REPLACE(@test,',',''',''')
    exec('select * from Table1 where id in ('''+@test+''')')
      

  4.   


    create table table1(columns varchar(50))
    insert table1 
    select 'test01'union all
    select 'test'union all
    select 'test1'union all
    select 'test2'
    select * from table1 declare @test varchar(50) 
    set @test = 'test1, test2, test3' 
    select * from Table1 where CHARINDEX(','+@test+',',','+'columns+',0)>0select CHARINDEX(','+@test+',',','+'columns+',0) from table1