sql="select * from a where flag in (1,2)"

解决方案 »

  1.   

    sql="select * from a where flag in ( select replace(flag,'''','') from b where id=1)"
    因为你的flag是int型的
    如果是varchar型的可以用你的那种写法
      

  2.   

    To ccmoon(IzuaL) :
    我的flag在a、b表中都是字符型的,如果我将b表的flag的值改为1,2反而没有结果
      

  3.   


     declare @flag varchar(100)  
    select  @flag =flag from b where id=1 select * from a where  charindex(cast(flag as varchar) ,@flag )>0
      

  4.   

    progress99:我的这条语句是在asp中使用,不知第三句的意思为何?能不能在asp下执行
      

  5.   

    declare @sql varchar(1000)
    select @sql='select * from a where a.flag in ('+flag+')' from b where id=1
    print @sql
    exec(@sql)
      

  6.   

    zheninchangjiang(john shu) :
    select @sql='select * from a where a.flag in ('+flag+')' from b where id=1 这句中的('+flag+')'表达式在哪?
    另:
    那个是"'1','2'"作为一个字符串处理的---这个我知道,但是如果在B表中写成'1','2'为何也不成?
      

  7.   

    Select * 
    From a Join b On
    (a.flag =b.flag) And (b.[id] =1)