语法:
decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)
decode(字段或字段的运算,值1,值2,值3)
select decode(value,<if this value>,<return this value>) from table
这个函数运行的结果是,当字段或字段的运算的值等于值1时,返回值2,否则返回值3 ;
值1...值n也可以使表达式,这个函数使得某些sql语句简单了好多
使用方法1:比较大小
select decode(sign(变量1-变量2),-1,变量1,变量2) from dual;
sign()函数根据某个值是0,正数,负数,分别返回0,1,-1
使用方法二:相当于IF-THEN- ELSIF-THEN-...ELSE-END IF
如果我们想统计一张表中男女生的数量,常规做法是:
select count(1) from table_name where sex='男'
union
select count(1) from table_name where sex='女'
使用decode则只需要一句话:
select sum(decode(sex,'男',1,0) as '男',decode(sex,'女',1,0) as '女') from table_name;
实例:
SELECT O1.ORG_NAME S_NAME, O1.ORG_ID S_ID, SUM(DECODE(R1.REJECT_REASON, '1', 1, 0)) AS WZZH, SUM(DECODE(R1.REJECT_REASON, '2', 1, 0)) AS AQCSBZ, SUM(DECODE(R1.REJECT_REASON, '3', 1, 0)) AS WBGZXKSX, SUM(DECODE(R1.REJECT_REASON, '4', 1, 0)) AS WXCAQJD, SUM(DECODE(R1.REJECT_REASON, '5', 1, 0)) AS WAQFH, SUM(DECODE(R1.REJECT_REASON, '6', 1, 0)) AS FSGCL, SUM(DECODE(R1.REJECT_REASON, '7', 1, 0)) AS FDYCZ, SUM(DECODE(R1.REJECT_REASON, '8', 1, 0)) AS YSTSD, SUM(DECODE(R1.REJECT_REASON, '9', 1, 0)) AS TDSBGZ, SUM(DECODE(R1.REJECT_REASON, '10',1, 0)) AS BHGGJ, SUM(DECODE(R1.REJECT_REASON, '11',1, 0)) AS BHGSB, SUM(DECODE(R1.REJECT_REASON, '12',1, 0)) AS CSTZZY, SUM(DECODE(R1.REJECT_REASON, '13',1, 0)) AS JHJS, SUM(DECODE(R1.REJECT_REASON, '14',1, 0)) AS QT FROM TOP_ORGANIZATION O1 LEFT JOIN (SELECT R.REJECT_REASON, O2.ORG_CODE FROM SP_SS_EMPLOYEE_REJECT R,TOP_ORGANIZATION O2 WHERE R.REPORT_DEPARTMENT_OID = O2.ORG_ID ) R1 ON R1.ORG_CODE LIKE O1.ORG_CODE||'%' WHERE O1.PARENT_ORG_ID = GROUP BY O1.ORG_ID,O1.ORG_NAME
相关推荐
Oracle的DECODE函数是一种条件表达式,用于在SQL语句中执行类似于IF...THEN...ELSE逻辑判断的功能。它根据一个指定的表达式的值,与一系列的条件进行比较,如果匹配到某个条件,则返回对应的值;如果没有匹配任何...
在Oracle数据库中,DECODE函数是一个非常实用的工具,它允许你在SQL查询中进行条件判断,将特定的值转换为其他值。DECODE函数在处理列转行的问题时,尤其适用于将多列数据合并到一行中,使得数据展示更加简洁明了。...
下面将详细介绍Oracle Decode()函数的使用技巧。 1. **基本语法**: Decode()函数的基本语法如下: ``` DECODE(source, value1, result1, value2, result2, ..., default_value) ``` 其中,`source`是要检查的...
Oracle函数是数据库操作中的核心组成部分,它们允许开发人员和DBA执行各种计算、转换、查询和数据处理任务。手册中可能涵盖了以下几类函数: 1. 数学函数:如ABS(取绝对值)、MOD(取模)、ROUND(四舍五入)等,...
Oracle中的DECODE函数是一种非常实用的工具,它允许你在SQL查询中执行简单的条件判断和返回相应的值。这个函数类似于IF-THEN-ELSE语句的简写形式,减少了编写复杂逻辑的代码量,使得SQL语句更加简洁易读。 DECODE...
2. "oracle函数介绍(2) 非著名函数之单值函数.doc":这部分可能会介绍一些不那么常用但同样重要的单值函数,如DECODE()(根据条件返回不同值)、NVL()(处理NULL值)和TO_CHAR()(将数据转换为字符格式)。...
Oracle DECODE函数功能很强,下面就为您详细介绍Oracle DECODE函数的用法,希望可以让您对Oracle DECODE函数有更多的了解。 Oracle DECODE函数 Oracle DECODE函数是Oracle公司独家提供的功能,它是一个功能很强的...
### Oracle中Decode()函数的有关用法 #### 一、Decode()函数简介 在Oracle数据库中,`DECODE()`函数是一种非常实用的功能,主要用于条件判断并返回特定的值。它提供了一种简单的方法来实现多分支逻辑判断,尤其是...
### Oracle的DECODE函数详解 #### 一、DECODE函数简介 在Oracle数据库中,`DECODE`函数是一种非常实用的条件判断函数,其功能类似于编程语言中的`IF`语句。通过比较输入值与一系列预设值,该函数能够根据匹配情况...
二、Oracle函数使用技巧 1. 在使用函数时,需注意函数的参数类型和返回类型,确保数据类型的匹配,避免出现错误。 2. NVL()和NVL2()的区别在于,当第二个参数为NULL时,NVL2()会返回第三个参数的值,而NVL()则直接...
在实际编程中,我们需要注意区分Oracle函数的大小写敏感性,因为在PL/SQL中函数是不区分大小写的,但在SQL语句中则可能需要按照实际的大小写来编写函数名。此外,熟悉并正确使用这些函数将有助于我们编写出更高效、...
Oracle 函数大全 Oracle 函数大全是 Oracle 数据库管理系统中的一系列函数,...本文档中还介绍了更多的单行函数和组函数,详细的讲解了每个函数的使用方法和示例代码,为开发者提供了一个 Oracle 函数大全的参考手册。
decode 函数也可以与其他函数结合使用,例如 LPAD 函数,可以实现一些复杂的字符串处理,例如: ```sql SELECT LPAD(DECODE(COUNT(记录编号),0,1,MAX(TO_NUMBER(记录编号)+1)),14,'0') 记录编号 FROM tetdmis ``` ...
Oracle数据库是世界上最广泛使用的数据库系统之一,其强大的功能和丰富的内置函数是其核心竞争力之一。这份"Oracle函数速查手册"旨在为用户提供一个全面、便捷的参考资源,无论是初学者还是经验丰富的开发者,都能...
"Oracle函数速查手册"是一份非常实用的参考资料,它涵盖了Oracle数据库中的各种函数,帮助用户快速查找并理解如何使用这些函数。在数据库管理、查询优化以及复杂数据处理时,这些函数起着至关重要的作用。 Oracle...
本资源“ORACLE函数大全CHM”显然是一个针对Oracle数据库中的各种函数的参考手册,旨在帮助开发者和DBA深入理解和使用Oracle的内置函数。CHM文件是一种常见的Windows帮助文档格式,通常包含丰富的文本、索引和搜索...
通过阅读“三思笔记”中的相关内容,DBA们可以系统地学习Oracle函数的用法,从而更好地应对日常的数据库挑战。无论是处理数据转换、分析大量数据还是解决特定问题,这些函数都能提供强大的工具支持。因此,深入理解...