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会更加方便一些。
Oracle-Decode()函数和CASE语句的不同
转载下一篇:ORACLE 字符串操作
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Python的控制语句和循环语句
if、for、while语句
循环语句 控制语句 -
oracle中decode和case的使用例子
decode是很不错的条件函数,但是它却不能使用范围来进行条件区分,而case则刚好弥补了这一缺点,以下是二者的例子比较
oracle case 休闲 例子 decode -
Oracle的CASE语句和表达式
两种不
oracle input null function 语言