`
houniao
  • 浏览: 77219 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

case与decode的区别

阅读更多
  • decode的用法:
SELECT
  DECODE
  (
    '持久层技术缩写',
    j,   'jdbc',
    h,  'hibernate',
    i,   'ibatis',
    j,   'JPA'
         'other'
  ) AS '具体持久方式'
FROM    'java开发';

可以清楚的看出decode是一个一对一译码过程,这也是它为什么叫decode的原因。

 

  • case有两种情况:

          1.serach case的用法

SELECT
  CASE
    WHEN '女人特征' = '臭味相投'
      THEN '死党'
    WHEN '女人特征' = '端庄贤慧'
      THEN '老婆'
    WHEN '女人特征' = '善解人意'
      THEN '红颜知己'
    WHEN '男人特征' = '志同道合'
      THEN '朋友'   
    WHEN '男人特征'  < '道德底线'
      THEN '小人远之'    
    ELSE '不做选择'
  END  AS '人际交往'
FROM    '社会';

可以看出有多种选择,而且可以是不同字段,安顺序进行匹配谁先匹配上了就end,另外它可以对范围进行判断,这是decode不具备的功能

 

          2.simple case的用法

 

 

SELECT
  CASE
    '持久层技术缩写',
    WHEN 'j' THEN  'jdbc'
    WHEN 'h' THEN  'hibernate'
    WHEN 'i' THEN  'ibatis'
    WHEN 'j' THEN  'JPA'
    ELSE    'other'
  END  AS '具体持久方式'
FROM    'java开发';

 

这种方式其实可decode基本一样

 

decode用的人比较多,可能是因为它出现的比较早,case是在oracle8.1以后才加入的,在之前要在sql中实现if else的逻辑判断却需要其它辅助函数floor和sign。另外decode的用法比较简洁我觉得也是一个原因。

由于case是SQL标准, 所以使用的时候最好优先考虑case语句。

 

参考了:Frank Kulash的解释

分享到:
评论

相关推荐

    decode函数与case when 的妙用

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

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

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

    DECODE解码代码

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

    Oracle中Decode()函数使用技巧

    Decode()函数常与NVL()函数一起使用,处理可能的NULL值。NVL()函数用于将NULL替换为指定的值。例如: ``` DECODE(NVL(column, 'default'), 'value', 'result') ``` 这个例子中,如果`column`是NULL,先用`'...

    数据库基础 高级sql编程

    在高级 SQL 编程中,Case 与 Decode 是两个非常有用的函数,它们能够极大地提高数据处理能力和查询效率。 高级 SQL 编程在数据库开发技术中扮演着非常重要的角色,它能够极大地提高数据库的查询效率和数据处理能力...

    ORACLE 列转行 DECODE函数用法

    在列转行的应用中,DECODE函数可以与PIVOT操作结合使用。PIVOT操作用于将行转换为列,而DECODE则用于提供列值的逻辑判断。比如,如果你有一个销售数据表,包含产品ID、月份和销售额,你可以通过以下方式将不同产品的...

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

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

    decode函数.pdf

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

    oracle的decode函数

    - **高效性**:在某些情况下,`DECODE`函数可能比等效的`CASE WHEN`结构执行得更快。 ##### 注意事项: - **NULL处理**:需要注意的是,默认情况下,如果`input_value`为`NULL`,那么`DECODE`函数将返回`NULL`,...

    使用Decode运算符.rar

    5. **与CASE语句的比较** 虽然 `Decode` 在某些情况下提供了简洁的解决方案,但 `CASE` 语句更通用,可以处理更复杂的逻辑。`CASE` 支持更灵活的条件和返回值,可以用于创建复杂的计算和逻辑判断。 6. **注意事项*...

    decode函数借鉴.pdf

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

    Oracle_case_when_用法

    `CASE WHEN` 与 `DECODE()` 函数相似,但因其符合 ANSI 标准而更受推荐使用。 #### 二、基本结构 `CASE WHEN` 语句的基本结构如下: ```sql CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ...

    Oracle 中 decode 函数用法

    DECODE函数还可以与其他函数结合使用,例如`LPAD`,用于在输出前填充零,确保数据的格式一致。例如,如果你有一个自增的主键,想在输出时自动加1并前面补零,可以这样做: ```sql SELECT LPAD(DECODE(COUNT(记录编号...

    oracle decode

    DECODE函数提供了一种简洁的语法,使得我们可以在SQL查询中避免使用复杂的CASE语句或者IF-THEN逻辑。它的工作原理是,对指定的表达式进行评估,如果与第一个参数匹配,则返回第二个参数;如果不匹配,则返回后续参数...

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

    然而,在面对复杂的多条件组合统计需求时,`DECODE`函数的应用可能会变得相对繁琐,这时往往更倾向于使用`CASE WHEN`语句或创建视图的方法来解决。不过,如果出于特定原因需要坚持使用`DECODE`函数,那么了解如何...

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

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

    [数据库] Oracle使用CASE判断解决多值问题1

    为了简化这一过程,我们可以利用Oracle SQL的内置函数,如DECODE和CASE WHEN,直接在数据库层面进行处理。 首先,尝试使用DECODE函数。DECODE函数允许我们根据指定的条件返回不同的值。例如,DECODE(ZY_TYPE, '国家...

    Oracle DECODE函数语法使用介绍

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

Global site tag (gtag.js) - Google Analytics