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

简介:

Oracle Decode()函数和CASE语句都是我们经常用到的,那么它们的区别在哪里呢?下面就为您详细介绍Oracle Decode()函数和CASE语句的区别,供您参考。

  首先,举2个简单的例子,简单对比一下这2者的区别。

  1.CASE语句:

  以下是代码片段:

  SELECT CASE SIGN(5 - 5)

  WHEN 1 THEN 'Is Positive'

  WHEN -1 THEN 'Is Negative'

  ELSE 'Is Zero' END

  FROM DUAL;
后台实现:

  以下是代码片段:

  if (SIGN(5 – 5) = 1) {

  'Is Positive';

  } else if (SIGN(5 – 5) = 2 ) {

  'Is Negative';

  }else {

  ‘Is Zero’

  }
2. Decode函数:

  以下是代码片段:

  SELECT DECODE(SIGN(5 – 5), 1,

  'Is Positive', -1, 'Is Negative', ‘Is Zero’)

  FROMDUAL
后台实现:

  以下是代码片段:

  switch ( SIGN(5 – 5) )

  {

  case 1 : 'Is Positive'; break;

  case 2 : 'Is Negative'; break;

  default : ‘Is Zero’

  }
在上面的例子中,2者似乎都可以实现。但是,在碰到非凡的问题时Decode()要实现起来就相当复杂了。

  例如:

  以下是代码片段:

  SELECT CASE X-FIELD

  WHEN X-FIELD < 40 THEN ‘X-FIELD < 40’

  WHEN X-FIELD < 50 THEN ‘X-FIELD < 50’

  WHEN X-FIELD < 60 THEN ‘X-FIELD < 60’

  ELSE ‘UNBEKNOWN’END

  FROM DUAL
因此,个人认为,CASE语句在处理类似问题就显得非常灵活。当只是需要匹配少量数值时,用Decode更为简洁。
 










本文转自 wws5201985 51CTO博客,原文链接:http://blog.51cto.com/wws5201985/760971,如需转载请自行联系原作者
目录
相关文章
|
4月前
|
SQL Oracle 关系型数据库
[Oracle]面试官:你举例几个内置函数,并且说说如何使用内置函数作正则匹配
本文介绍了多种SQL内置函数,包括单行函数、非空判断函数、日期函数和正则表达式相关函数。每种函数都有详细的参数说明和使用示例,帮助读者更好地理解和应用这些函数。文章强调了字符串操作、数值处理、日期计算和正则表达式的使用方法,并提供了丰富的示例代码。作者建议读者通过自测来巩固学习成果。
50 1
[Oracle]面试官:你举例几个内置函数,并且说说如何使用内置函数作正则匹配
|
8月前
|
SQL Oracle 算法
|
8月前
|
SQL Oracle 关系型数据库
|
8月前
|
SQL Oracle 关系型数据库
Oracle|内置函数之INSTR
【7月更文挑战第5天】
|
8月前
|
Oracle 关系型数据库 数据挖掘
|
8月前
|
Oracle 关系型数据库 数据挖掘
|
9月前
|
存储 Oracle NoSQL
Oracle中decode函数详解
Oracle中decode函数详解
|
9月前
|
Oracle 关系型数据库 大数据
oracle递归函数
oracle递归函数
|
10月前
|
NoSQL Oracle 关系型数据库
MongoDB与Oracle:管道函数兼容之道
【4月更文挑战第20天】
102 2
|
Oracle 关系型数据库
Oracle常用函数整理
今天再给大家分享一下Oracle的常用函数。
Oracle常用函数整理

推荐镜像

更多