`
sangei
  • 浏览: 336416 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

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

分享到:
评论

相关推荐

    decode函数与case when 的妙用

    在阅读博客文章《decode函数与case when 的妙用》时,作者可能分享了一些具体的示例和使用技巧,帮助我们更好地理解和掌握这两种方法。通过学习和实践,我们可以将这些知识应用于日常的数据库操作,优化数据处理流程...

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

    Oracle数据库中的`Decode()`函数和`CASE`语句都是用于条件判断和数据转换的重要工具,它们各有特点,适用场景也有所不同。以下是对这两个功能的详细比较。 首先,`Decode()`函数是一个简化的条件表达式,它允许你在...

    decode函数.pdf

    Decode函数是Oracle数据库中用于实现条件逻辑的一个内置函数,它类似于编程语言中的switch-case语句或if-then-else语句。Decode函数可以对给定的表达式进行多个条件判断,并返回匹配条件的相应值。Decode函数广泛...

    Oracle用decode函数或CASE-WHEN实现自定义排序

    这里的`CASE-WHEN`语句与`DECODE`函数类似,也是将字段值映射到对应的排序值,然后根据这些值进行排序。`CASE-WHEN`的优点在于其结构更清晰,易于阅读,并且可以处理更复杂的条件判断。 3. **效率与优化** 虽然这...

    decode函数借鉴.pdf

    这比使用 if-then-else 语句或 choose case 语句要简洁得多。 DECODE 函数的应用非常广泛,例如,在 Oracle 系统中就有许多数据字典是使用 DECODE 思想设计的,比如记录会话信息的 V$SESSION 数据字典视图。我们...

    oracle的decode函数

    #### 五、DECODE函数的优势与注意事项 ##### 优势: - **简洁性**:相较于使用复杂的`CASE WHEN`结构,`DECODE`函数通常更简洁明了。 - **易读性**:对于简单的条件判断,`DECODE`函数使得SQL语句更加直观易懂。 - *...

    Oracle 中 decode 函数用法

    在某些情况下,DECODE函数可能不如CASE语句灵活,但其简洁性使其在简单条件判断时特别有用。例如,将某个字段的值进行映射,如将'DIR'字段的值1映射为0,0映射为1: ```sql SELECT DECODE(DIR, 1, 0, 0, 1) FROM a1_...

    DECODE解码代码

    DECODE函数提供了一种简洁的语法,使得在SQL查询中可以根据不同的条件返回不同的值,而无需使用复杂的CASE语句或者IF-THEN-ELSE逻辑。 DECODE函数的基本语法如下: ```sql DECODE(expression, value1, result1, ...

    Oracle中Decode()函数使用技巧

    这个函数在处理数据时提供了灵活性,避免了复杂的CASE语句,使得代码更加简洁易读。下面将详细介绍Oracle Decode()函数的使用技巧。 1. **基本语法**: Decode()函数的基本语法如下: ``` DECODE(source, value1...

    ORACLE DECODE函数在中国式报表统计查询中的组合条件实现

    ### ORACLE DECODE函数在中国式报表统计查询中的组合条件实现 #### 一、引言 在Oracle数据库中,`DECODE`函数是一种非常实用的功能,主要用于条件判断并返回不同的值。它经常被用来进行简单的条件分支处理,尤其...

    Oracle DECODE函数语法使用介绍

    但请注意,实际的行列转换通常需要用到更复杂的SQL语句,如Pivot或CASE语句,而DECODE函数通常只在简单的转换场景中使用。 总的来说,Oracle DECODE函数是数据库查询中的一个重要工具,尤其在处理条件判断和数据...

    oracle中decode函数的使用方法示例

    在这个例子中,DECODE函数被用来检查`empno`字段的值是否与预设的员工编号匹配。如果`empno`等于7369,那么返回'smith';如果等于7499,返回'allen';以此类推。如果没有任何匹配,那么返回'unknow'。这可以看作是...

    Oracle高级操作函数学习笔记

    在提供的内容中,通过DECODE函数实现了工资的区间判断显示,使用CASE语句完成了加薪规则的计算,还演示了如何使用UNION、INTERSECT和MINUS进行集合操作。这些知识点展示了Oracle在数据处理方面的灵活性和高效性,...

    使用Oracle的Decode函数进行多值判断

    Oracle的Decode函数是一种非常实用的工具,用于在SQL查询中执行简单的条件判断。它允许你在不使用CASE语句的情况下,根据指定的条件返回不同的值。这个函数尤其适用于那些需要进行多值判断的情况,使得代码更加简洁...

    oracle sql 行列转换

    在给定的内容中,DECODE函数被用来实现与CASE语句相同的效果: ```sql SELECT seq, SUM(DECODE(jcxm, 1, zhi, 0)) AS 目标1, SUM(DECODE(jcxm, 2, zhi, 0)) AS 目标2, SUM(DECODE(jcxm, 3, zhi, 0)) AS 目标3 ...

    oracle函数大全

    1. DECODE 函数作为简单的条件转换函数,类似与编程语言中的 case 语句 七、游标操作 1. 介绍使用游标(CURSOR)的步骤,包括定义游标、打开游标、从游标中取数据、关闭游标 八、伪列函数 1. 使用 ROWNUM 为查询...

Global site tag (gtag.js) - Google Analytics