DECODE函数的作用:它可以将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。
区别于SQL的其它函数,DECODE函数还能识别和操作空值。
语法如下:
Sql代码
DECODE(control_value,value1,result1[,value2,result2…][,default_result]);
control _value
试图处理的数值。DECODE函数将该数值与后面的一系列的偶序相比较,以决定返回值。
value1
是一组成序偶的数值。如果输入数值与之匹配成功,则相应的结果将被返回。对应一个空的返回值,可以使用关键字NULL于之对应
result1
是一组成序偶的结果值。
default_result 未能与任何一个值匹配时,函数返回的默认值。
示例如下:
select decode( x , 1 , ‘x is 1 ’, 2 , ‘x is 2 ’, ‘others’) from dual
当x等于1时,则返回‘x is 1’。
当x等于2时,则返回‘x is 2’。
否则,返回others’。
在需要比较2个值的时候,我们可以配合SIGN()函数一起使用。
SELECT DECODE( SIGN(5 -6), 1 'Is Positive', -1, 'Is Nagative', 'Is Zero')
同样,也可以用CASE实现:
SELECT CASE SIGN(5 - 6)
WHEN 1 THEN 'Is Positive'
WHEN -1 THEN 'Is Nagative'
ELSE 'Is Zero' END
FROM DUAL
DECODE(control_value,value1,result1[,value2,result2…][,default_result]);
control _value
试图处理的数值。DECODE函数将该数值与后面的一系列的偶序相比较,以决定返回值。
value1
是一组成序偶的数值。如果输入数值与之匹配成功,则相应的结果将被返回。对应一个空的返回值,可以使用关键字NULL于之对应
result1
是一组成序偶的结果值。
default_result 未能与任何一个值匹配时,函数返回的默认值。
示例如下:
select decode( x , 1 , ‘x is 1 ’, 2 , ‘x is 2 ’, ‘others’) from dual
当x等于1时,则返回‘x is 1’。
当x等于2时,则返回‘x is 2’。
否则,返回others’。
在需要比较2个值的时候,我们可以配合SIGN()函数一起使用。
SELECT DECODE( SIGN(5 -6), 1 'Is Positive', -1, 'Is Nagative', 'Is Zero')
同样,也可以用CASE实现:
SELECT CASE SIGN(5 - 6)
WHEN 1 THEN 'Is Positive'
WHEN -1 THEN 'Is Nagative'
ELSE 'Is Zero' END
FROM DUAL 另外,大家还可以在Order by中使用Decode。
例:表table_subject,有subject_name列。要求按照:语、数、外的顺序进行排序。这时,就可以非常轻松的使用Decode完成要求了。
Sql代码
select * from table_subject order by decode(subject_name, '语文', 1, '数学', 2, , '外语',3)
select * from table_subject order by decode(subject_name, '语文', 1, '数学', 2, , '外语',3)
分享到:
相关推荐
Oracle中Decode()函数使用技巧
decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THEN RETURN(翻译值2) ...... ELSIF 条件=值n THEN RETURN(翻译值n) ...
1. Decode()函数使用技巧(NT+IIS+ASP+ORACLE) 2. Dual伪列 3. EXP、IMP 命令详解 4. Exp-Imp大量数据 5. Export-Import 使用技巧与常见错误 6. NULL 使用详解 7. Oracle for NT系统实用工具介绍 8. Oracle ...
Oracle DECODE函数功能很强,下面就为您详细介绍Oracle DECODE函数的用法,希望可以让您对Oracle DECODE函数有更多的了解。 Oracle DECODE函数 Oracle DECODE函数是Oracle公司独家提供的功能,它是一个功能很强的...
博客:PostgreSQL的学习心得和知识总结(四十四)|语法级自上而下完美实现Oracle数据库DECODE函数的实现方案(GreenPlum & AntDB)
1:使用decode判断字符串是否一样 DECODE(value,if1,then1,if2,then2,if3,then3,…,else) 含义为 IF 条件=值1 THEN RETURN(value 1) ELSIF 条件=值2 THEN RETURN(value 2) …… ELSIF 条件=值n THEN ...
Oracle、SQLServer、Symfoware、DB2、SYBASE数据库对比语法及函数
第2章 安装Oracle Database 10g和创建数据库 第3章 升级到Oracle Database 10g 第4章 规划Oracle应用程序——方法、风险和标准 第Ⅱ部分 SQL和SQL*Plus 第5章 SQL中的基本语法 第6章 基本的SQL*Plus报表及命令 第7章...
可根据查询结果自动生成IN、DECODE等多形式函数的参数,省去你查询手工输入上述函数多参数时的痛苦。 批量处理查询结果集中数据去除多余前后空格,增加对多字段字符串数据标准化,替换或去除数据中任意数据位数据,...
今天上头要求做一个类似的功能,初步想到的列转行,但是如何实现也没有什么好办法,这个函数不错DECODE函数是ORACLE PL/SQL是功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其他数据库厂商的SQL实现...
1.10 使用DECODE函数来减少处理时间 8 1.11 删除重复记录 8 1.12 用TRUNCATE替代DELETE 9 1.13 尽量多使用COMMIT 9 1.14 计算记录条数 9 1.15 用WHERE子句替换HAVING子句 9 1.16 减少对表的查询 10 1.17 通过内部...
Oracle 中 decode 函数用法 含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THEN RETURN(翻译值2) ...... ...
1 问题 对SQL排序,只要在order by后面加字段就可以了,可以通过加desc或asc来选择降序或升序。但排序规则是默认的,数字、时间、字符串等都有自己默认的排序规则。有时候需要按自己的想法来排序,而不是按字段默认...
第2章 安装oracle database 11g 和创建数据库 第3章 升级到oracle database 11g 第4章 规划oracle 应用程序——方法、风险和标准 第ⅱ部分 sql 和sql*plus 第5章 sql 中的基本语法 第6章 基本的sql*plus ...
Kevin Loney是Oracle数据库设计、开发、管理和调整方面的国际知名专家。作为金融界的一名企业数据库架构师,2002年他被Oracle Magazine提名为年度顾问。他的畅销书包括《Oracle Database 11g DBA手册》、Oracle ...
一:使用where少使用having; 二:查两张以上表时,把记录少的放在右边; 三:减少对表的访问次数; 四:有where子查询时,子查询放在最前; 五:select语句中尽量避免使用*(执行时会把*依次转换为列名); 六:尽量...
5.oracle数据库启动流程 9 6.oracle登录认证方式 10 7.oracle丢失管理员密码怎么办 11 8.oracle表管理 12 9.oracle基本查询 14 oracle基本所有查询案例 16 10.oracle分页查询 21 (1)删除重复记录 22 11.oracle合并...
第一章 Oracle数据库基础 23 §1.1 理解关系数据库系统(RDBMS) 23 §1.1.1 关系模型 23 §1.1.2 Codd十二法则 24 §1.2 关系数据库系统(RDBMS)的组成 24 §1.2.1 RDBMS 内核 24 §1.2.2 数据字典概念 25 §1.3 ...