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

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

阅读更多
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
分享到:
评论
1 楼 ksrs 2008-09-17  
非常感谢。
附本人解决问题之思考:
create table mtest(id number(2) primary key not null,name varchar2(20));
name字段若为null,则替换为‘bad'
1.select id,name,case name when null then 'bad' else name end as lvl from mtest;
  功能无法实现,原因如楼主示:if(name = null) then 'bad' else name endif;
2.select id,name,case when name is null then 'bad' else name end as lvl
  功能可以实现。
  后台解释:if(name is null) then 'bad' else name endif;

相关推荐

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

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

    Oracle中Decode()函数使用技巧.doc

    Oracle 中 Decode() 函数使用技巧 Decode 函数是 Oracle PL/SQL 中的一种功能强大的...Decode 函数是 Oracle PL/SQL 中的一种功能强大的函数,可以用来实现多种逻辑判断,简化 SQL 语句,提高查询效率,减少代码量。

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

    1. **DECODE函数** Oracle的`DECODE`函数是一种条件判断函数,它可以用于对数据进行简单的多值比较和返回。在自定义排序场景中,`DECODE`函数可以将不同的字段值映射到对应的排序值。以下是一个例子: ```sql ...

    Oracle 中 decode 函数用法

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

    oracle的decode函数

    ### Oracle的DECODE函数详解 #### 一、DECODE函数简介 在Oracle数据库中,`DECODE`函数是一种非常实用的条件判断函数,其功能类似于编程语言中的`IF`语句。通过比较输入值与一系列预设值,该函数能够根据匹配情况...

    decode函数与case when 的妙用

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

    Oracle中Decode()函数使用技巧

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

    oracle 10G函数大全(中文)

    5. **连接和比较函数**: - CONCAT、||用于字符串连接。 - LIKE、IN、BETWEEN、NOT BETWEEN用于查询条件的构建。 - SIMILAR TO支持正则表达式的匹配。 6. **数据类型转换**: - TO_CHAR、TO_DATE、TO_NUMBER将...

    Oracle内建函数大全

    Oracle数据库是世界上最广泛使用的数据库系统之一,其强大的功能和丰富的内置函数库是其核心优势之一。本文将深入探讨Oracle内建函数,旨在帮助用户更好地理解和利用这些功能来优化数据库操作。 1. **数学函数** -...

    decode函数借鉴.pdf

    DECODE 函数是 Oracle 公司独家的功能强大的函数,它提供了简洁的运算方式、可控的数据模型和灵活的格式转换。DECODE 函数是 Oracle PL/SQL 的功能强大的函数之一,目前还只有 Oracle 公司的 SQL 提供了此函数,其他...

    Oracle高级操作函数学习笔记

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

    decode函数.pdf

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

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

    DECODE函数在Oracle数据库中非常灵活,可以根据不同的需求进行条件判断和值的转换,极大地简化了SQL查询的复杂性。它可以处理多个条件,同时返回一个明确的结果,是数据库查询中不可或缺的一部分。

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

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

    oracle最常用的函数或方法总结

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,其丰富的函数和方法库为SQL查询提供了强大的支持。在日常的数据操作和分析中,掌握一些常用的Oracle函数和方法是至关重要的。以下是对"Oracle最常用的...

    oracle 函数大全 参考函数 手册 速查 chm格式

    9. PL/SQL控制结构:如CASE语句、IF...THEN...ELSE...END IF结构等,用于编写过程和函数。 10. 游标和查询相关函数:如CURSOR(定义游标)、FETCH(从游标获取数据)以及嵌套查询中的聚合函数。 11. 连接函数:如...

    Oracle实验二-SQL语句综合应用

    - 调整员工工资涉及到`UPDATE`语句结合`CASE`表达式或`DECODE`函数,以实现条件性的工资调整。 7. **权限管理**: - 实验者提到了普通用户可能需要管理员权限才能执行某些操作,如创建视图和索引,这反映了Oracle...

    Oracle数据库常用sql语句的分类和常用函数.docx

    根据提供的文档信息,本文将详细解析Oracle数据库中的关键SQL语句分类、常用SQL语句以及Oracle函数的应用场景。此外,还将简要介绍Oracle数据库的一些基本管理命令,如启动与关闭服务、用户管理等。 ### 一、Oracle...

    Oracle DECODE函数语法使用介绍

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

Global site tag (gtag.js) - Google Analytics