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,如需转载请自行联系原作者
目录
相关文章
|
23小时前
|
SQL Oracle 关系型数据库
Oracle|内置函数之INSTR
【7月更文挑战第5天】
|
25天前
|
存储 Oracle NoSQL
Oracle中decode函数详解
Oracle中decode函数详解
|
2月前
|
NoSQL Oracle 关系型数据库
MongoDB与Oracle:管道函数兼容之道
【4月更文挑战第20天】
19 2
|
2月前
|
Oracle 关系型数据库 数据管理
Oracle常用系统函数之日期和时间类函数:时空穿梭者的魔法棒
【4月更文挑战第19天】Oracle数据库中的日期和时间函数是强大的工具,如同时空穿梭者的魔法棒。`SYSDATE`和`CURRENT_TIMESTAMP`能显示当前时间,助你在数据中记录关键时刻;`ADD_MONTHS`函数让你轻易跃过月份,实现时间穿越;而`TO_DATE`和`TO_CHAR`则负责日期和时间的格式转换,如同时间的化妆师。除此之外,还有`EXTRACT`、`LAST_DAY`等更多魔法道具,帮助数据管理专家们自如操控时间,解决各种挑战。掌握这些函数,你也能在数据世界中自由穿梭!
|
2月前
|
Oracle 算法 关系型数据库
Oracle常用系统函数之数字类函数:数字的魔术师
【4月更文挑战第19天】Oracle数据库中的数字类函数是数字处理的魔术师,包括`ROUND`(四舍五入),`CEIL`和`FLOOR`(向上/下取整),以及`ABS`(计算绝对值)。还有`MOD`、`TRUNC`和`POWER`等函数,提供求余数、截断和计算幂的功能。熟练运用这些函数能提升数据管理效率,让处理数字变得更简单、有趣。
|
2月前
|
存储 SQL Oracle
Oracle创建函数:数据王国的“魔法秘籍”
【4月更文挑战第19天】Oracle函数是数据处理的利器,专注于计算与返回值。通过`CREATE OR REPLACE FUNCTION`定义函数名、参数及返回类型,如示例中的加法函数`add_numbers`。调用函数时,可将其结果赋值给变量。函数可包含复杂逻辑和SQL,与其他数据库对象交互,用于触发器或存储过程。注意函数设计的唯一性、参数类型和性能优化。掌握函数使用能提升代码可读性和数据库管理效率。
|
2月前
|
Oracle 关系型数据库 数据挖掘
Oracle常用系统函数之聚集函数:数据的统计大师
【4月更文挑战第19天】Oracle的聚集函数是数据统计的强大工具,包括`SUM`(求和)、`COUNT`(计数)、`AVG`(平均值)、`MAX`和`MIN`(最大值和最小值)、`STDDEV`(标准差)等。这些函数帮助我们汇总、分析数据,提供丰富的统计信息。熟练掌握这些函数,能提升数据分析效率,助你成为数据大师。
|
2月前
|
Oracle 关系型数据库 数据管理
Oracle常用系统函数之字符类函数:文字的魔法师
【4月更文挑战第19天】Oracle数据库中的字符类函数是字符串处理的魔法师:`INITCAP`首字母大写,`TRIM`去除多余字符,`CONCAT`拼接字符串。还有`SUBSTR`、`LENGTH`、`UPPER`和`LOWER`等,助你轻松应对字符串问题,成为数据管理专家!
|
2月前
|
SQL 存储 Oracle
Oracle系列之九:Oracle常用函数
Oracle系列之九:Oracle常用函数
|
11月前
|
Oracle 关系型数据库
Oracle中decode 以及ROW_NUMBER() OVER() 函数等其它相关函数用法
Oracle中decode 以及ROW_NUMBER() OVER() 函数等其它相关函数用法
89 0