在一个SQL语句中的WHERE条件语句中能否做到如一个参数为真时就加一个相应的条件,参数为假时加另外一个相应的条件。
如:存储过程proc_OperOut:
CREATE PROCEDURE proc_OperOut @StrNum Bit
AS
select id,name,Num from dataprod
where (id <> 0)我想如果参数@StrNum为真时在where语句中加一个(Num > 0)条件,如果参数@StrNum为假时在where语句中加一个((Num >0)OR(Num < 1000))条件。各位高手,请请帮在下一忙。谢谢各位了!!!

解决方案 »

  1.   

    where (@strNum = 1 and (Num > 0) or (@strNum = 0 and ((Num >0)OR(Num < 1000)))
      

  2.   

    CREATE PROCEDURE proc_OperOut @StrNum Bit
    AS
    if @StrNum 
      select id,name,Num from dataprod
         where (id <> 0) and Num>0
    else
      select id,name,Num from dataprod
         where (id <> 0) and ((Num >0)OR(Num < 1000))
      

  3.   

    if @StrNum = 1  
    begin
      select ... where Num > 0 
    end
    Else
    begin
      Select ... where (Num >0) OR (Num < 1000)
    End
      

  4.   

    if @StrNum = 1  // 这儿是设定的为真的条件
      

  5.   

    同意ahzhuqi(zhuqi) 
    where (@strNum = 1 and (Num > 0) or (@strNum = 0 and ((Num >0) OR (Num < 1000)))