Oracle-Decode()函数和CASE语句的不同

简介:
Oracle-Decode()函数和CASE语句的区别: 

  具体示例如下: 

  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’) 

  FROM DUAL 

  后台实现: 

  switch ( SIGN(5 – 5) ) 

  { 

  case 1 : 'Is Positive'; break; 

  case 2 : 'Is Negative'; break; 

  default : ‘Is Zero’ 

  } 

  虽然在上面的示例中,两者看似都可以实现。但在遇到特殊情况时,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会更加方便一些。


本文转自茄子_2008博客园博客,原文链接:http://www.cnblogs.com/xd502djj/archive/2010/08/11/1797579.html,如需转载请自行联系原作者。


目录
相关文章
|
1月前
|
SQL Oracle 关系型数据库
[Oracle]面试官:你举例几个内置函数,并且说说如何使用内置函数作正则匹配
本文介绍了多种SQL内置函数,包括单行函数、非空判断函数、日期函数和正则表达式相关函数。每种函数都有详细的参数说明和使用示例,帮助读者更好地理解和应用这些函数。文章强调了字符串操作、数值处理、日期计算和正则表达式的使用方法,并提供了丰富的示例代码。作者建议读者通过自测来巩固学习成果。
26 1
[Oracle]面试官:你举例几个内置函数,并且说说如何使用内置函数作正则匹配
|
5月前
|
SQL Oracle 算法
|
5月前
|
SQL Oracle 关系型数据库
|
5月前
|
SQL Oracle 关系型数据库
Oracle|内置函数之INSTR
【7月更文挑战第5天】
|
5月前
|
Oracle 关系型数据库 数据挖掘
|
5月前
|
Oracle 关系型数据库 数据挖掘
|
6月前
|
存储 Oracle NoSQL
Oracle中decode函数详解
Oracle中decode函数详解
|
6月前
|
Oracle 关系型数据库 大数据
oracle递归函数
oracle递归函数
|
7月前
|
NoSQL Oracle 关系型数据库
MongoDB与Oracle:管道函数兼容之道
【4月更文挑战第20天】
74 2
|
7月前
|
存储 SQL Oracle
Oracle创建函数:数据王国的“魔法秘籍”
【4月更文挑战第19天】Oracle函数是数据处理的利器,专注于计算与返回值。通过`CREATE OR REPLACE FUNCTION`定义函数名、参数及返回类型,如示例中的加法函数`add_numbers`。调用函数时,可将其结果赋值给变量。函数可包含复杂逻辑和SQL,与其他数据库对象交互,用于触发器或存储过程。注意函数设计的唯一性、参数类型和性能优化。掌握函数使用能提升代码可读性和数据库管理效率。