在一条select语句中,可不可以实现条件可变的?如果field1='1' 那么field2>100
如果field1='2' 那么field2<=100

解决方案 »

  1.   

    select * from 
    (
    select field1, 
           case when field1='1' then 
                     case when field2>100 then field2  end
                when field1='2' then
                     case when field2<=100 then field2 end
           end field2
    from t4
    ) t
      

  2.   

    select * from 
    (
    select field1, 
           case when field1='1' then 
                     case when field2>100 then field2  end
                when field1='2' then
                     case when field2<=100 then field2 end
           end field2
    from t4
    ) t
    where t.field2 is not null
      

  3.   

    select * from t
    where (t.field=1 and field2>100) or (t.filed=2 and field2<=100)
    不知道這樣行不行,沒試過