我的过程里要很多很长的IF……ESLE……
有没有其他更有效的办法可以替代啊?

解决方案 »

  1.   

    如果你用的是oracle9I的话,用case语句啊
    比如:
    if a=1 then
       ……sentence……
    elseif a=2 then
       ……sentence2……
    可以改为
    case a
    when 1 then ……sentence1……
    when 2 then ……sentence2……
    else ……sentence3…… --这个esle相当于default
    end case
      

  2.   

    我觉得要看你的判断条件是什么样子的
    如果if...else...里面所嵌套的if...else...与上一层是同样的条件,那建议使用
    if...elsif...elsif...elsif...语法,如果不一样的话那么有两种函数可提供解决,一种是
    case,一种是decode。decode一般用来判断是否相等,但效率比较高,case则可以判断更多的情况,但是效率相对decode要差一些
      

  3.   

    case when
    正如1楼说的,9i才支持
    8i的话只能写if
      

  4.   

    8i在SQL中可以用CASE,但是在程序块中就不行。