代码之家  ›  专栏  ›  技术社区  ›  Bala

Oracle中的解码函数

  •  3
  • Bala  · 技术社区  · 16 年前

    我有这样的情况 如果(someparam!=值1) someparam=1 如果(someparam!=值2) 默认值=1

    3 回复  |  直到 16 年前
        1
  •  7
  •   Michael Pakhantsov    16 年前
    DECODE(SomeParam, Value1, DECODE(SomeParam, Value2, 1, 2), 1)
    

    但情况更好:

    case when someparam != Value1 then 1
        whene someparam != Value2 then 2
        else 1
    end
    
        2
  •  0
  •   Thilo    16 年前
     decode(someparam, value2, 1, 2)
    

        3
  •  0
  •   Montse Garcia    16 年前

    解码 (SomeParam,SomeParam!=值1,1, someParam!=值2,2,1)

    默认值与评估someparam时相同!=Value1因此可以这样简化:

    解码 (SomeParam,SomeParam!=值2,2,1)