您当前的位置: 首页 > 数据库教程 > Oracle教程 > Oracle-Decode()函数和CASE语句的比较

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

作者:guanchaofeng 来源:不详 发布时间: 2009-09-30 08:38 点击:
本文讲述了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' ENDFROM DUAL; 后台实现: if (SIGN(5

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'   ENDFROM   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’}

在上面的例子中,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’ENDFROM DUAL

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

分享到:
本文"Oracle-Decode()函数和CASE语句的比较"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4