熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Oracle Decode()函數和CASE語句的比較

2013-11-13 22:24:42  來源: Oracle 

  Oracle Decode()函數和CASE語句都是我們經常用到的那麼它們的區別在哪裡呢?下面就為您詳細介紹       

  Oracle Decode()函數和CASE語句的區別供您參考

  首先個簡單的例子簡單對比一下這者的區別

  CASE語句

  以下是代碼片段

  SELECT CASE SIGN(  )

WHEN  THEN Is Positive

WHEN  THEN Is Negative

ELSE Is Zero END

FROM DUAL;

  後台實現

  以下是代碼片段

  if (SIGN( – ) = ) {

Is Positive;

} else if (SIGN( – ) =  ) {

Is Negative;

}else {

‘Is Zero’

}

   Decode函數

  以下是代碼片段

  SELECT DECODE(SIGN( – ) 

Is Positive  Is Negative ‘Is Zero’)

FROMDUAL

  後台實現

  以下是代碼片段

  switch ( SIGN( – ) )

{

case  : Is Positive; break;

case  : Is Negative; break;

default : ‘Is Zero’

}

  在上面的例子中者似乎都可以實現但是在碰到非凡的問題時Decode()要實現起來就相當復雜了

  例如

  以下是代碼片段

  SELECT CASE XFIELD

WHEN XFIELD <  THEN ‘XFIELD < 

WHEN XFIELD <  THEN ‘XFIELD < 

WHEN XFIELD <  THEN ‘XFIELD < 

ELSE ‘UNBEKNOWN’END

FROM DUAL

  因此個人認為CASE語句在處理類似問題就顯得非常靈活當只是需要匹配少量數值時用Decode更為簡潔


From:http://tw.wingwit.com/Article/program/Oracle/201311/19030.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.