Oracle Decode()函数和CASE语句的比较

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle Decode()函数和CASE语句的比较相关的知识,希望对你有一定的参考价值。

参考技术A

  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 X FIELD WHEN X FIELD <   THEN ‘X FIELD <  ’ WHEN X FIELD <   THEN ‘X FIELD <  ’ WHEN X FIELD <   THEN ‘X FIELD <  ’ ELSE ‘UNBEKNOWN’END FROM DUAL lishixinzhi/Article/program/Oracle/201311/19030

以上是关于Oracle Decode()函数和CASE语句的比较的主要内容,如果未能解决你的问题,请参考以下文章

case...when...和decode——oracle

Oracle特有函数 case when decode exists 分页rownum

Oracle特有函数 case when decode exists 分页rownum

如何用Pivot实现行列转换

oracle中decode函数如何提升查询语句性能的?

Oracle decode函数