select * from users where charindex(','+rtrim(userid)+',' ,@字符串)>0OR:exec('select * from users where userid not in ('+@字符串+')')

解决方案 »

  1.   

    有点错
    select * from users where charindex(','+rtrim(userid)+',' ,','+@字符串+',')>0
      

  2.   

    测试:
    create table t1(a int)
    insert t1 values(1)
    insert t1 values(2)
    insert t1 values(3)
    insert t1 values(4)
    gocreate proc test @s varchar(20)
    as
       exec('select * from t1 where a not in '+@s)
    go
    -- 调用
    exec test '(1,2)'
    a           
    ----------- 
    3
    4(所影响的行数为 2 行)
      

  3.   

    crate pro myPro
    @1 varchar(20),
    @2 varchar(20),
    @3 varchar(20)
    as
    exec('select * from users where userid not in ('+@1+','+@2+','+@3+')')
    go
      

  4.   


    declare @krs table (NUM INT)
    DECLARE @X VARCHAR(8000)
    SET @X='123,212,32,'
    WHILE @X<>''
    BEGIN
    INSERT INTO @KRS (NUM) VALUES (LEFT(@X,(CHARINDEX(',',@X)-1) )  )
    SET @X=RIGHT(@X,LEN(@X)-CHARINDEX(',',@X))
    ENDselect * from users where userid not in(select num from @drs)