DECLARE @IDS AS VARCHAR(200)
SET @IDS = '''A'',''B'',''C'''
exec('SELECT * FROM TABLE WHERE ID IN('+@IDS+')')

解决方案 »

  1.   

    @str= SELECT * FROM TABLE WHERE ID IN(@IDS)
    用print @str 打出来看一下,和你要的一样不一样.
      

  2.   

    DECLARE @IDS AS VARCHAR(200)
    SET @IDS = '''A'',''B'',''C'''
    SELECT * FROM TABLE WHERE charindex(','+ID+',',','+@IDS+',')>0
      

  3.   

    DECLARE @IDS AS VARCHAR(200)
    SET @IDS = '''A'',''B'',''C'''
    SELECT * FROM [TABLE] WHERE ID IN(@IDS)table是关键字,要加[]
      

  4.   

    --try
    DECLARE @IDS AS VARCHAR(200)
    SET @IDS = 'A,B,C'
    select * from @TABLE where charindex(','+id+',',','+@IDS+',')>0
      

  5.   

    --测试:
    declare @TABLE table(ID varchar(10))
    insert into @TABLE select 'A'
    union all select 'B'
    union all select 'C'
    union all select 'D'
    --查询
    DECLARE @IDS AS VARCHAR(200)
    SET @IDS = 'A,B,C'
    select * from @TABLE where charindex(','+id+',',','+@IDS+',')>0--结果
    ID         
    ---------- 
    A
    B
    C
      

  6.   

    加上EXEC是最简单的方法了呵呵