含义解释:

decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)

该函数的含义如下:

IF 条件=值1 THEN

RETURN(翻译值1)

ELSIF 条件=值2 THEN

RETURN(翻译值2)

......

ELSIF 条件=值n THEN

RETURN(翻译值n)

ELSE

RETURN(缺省值)

END IF

decode(字段或字段的运算,值1,值2,值3)

这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3

当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多

使用方法:

1、比较大小

select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值

sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1

例如:

变量1=10,变量2=20

则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的。

2、此函数用在SQL语句中,功能介绍如下:

Decode函数与一系列嵌套的 IF-THEN-ELSE语句相似。base_exp与compare1,compare2等等依次进行比较。如果base_exp和 第i 个compare项匹配,就返回第i 个对应的value 。如果base_exp与任何的compare值都不匹配,则返回default。每个compare值顺次求值,如果发现一个匹配,则剩下的compare值(如果还有的话)就都不再求值。一个为NULL的base_exp被认为和NULL compare值等价。如果需要的话,每一个compare值都被转换成和第一个compare 值相同的数据类型,这个数据类型也是返回值的类型。

Decode函数在实际开发中非常的有用

结合Lpad函数,如何使主键的值自动加1并在前面补0

select LPAD(decode(count(记录编号),0,1,max(to_number(记录编号)+1)),14,'0') 记录编号 from tetdmis

select decode(dir,1,0,1) from a1_interval

dir 的值是1变为0,是0则变为1

比如我要查询某班男生和女生的数量分别是多少?

通常我们这么写:

select count(*) from 表 where 性别 = 男;

select count(*) from 表 where 性别 = 女;

要想显示到一起还要union一下,太麻烦了

用decode呢,只需要一句话

select decode(性别,男,1,0),decode(性别,女,1,0) from 表

3,order by对字符列进行特定的排序

大家还可以在Order by中使用Decode。

例:表table_subject,有subject_name列。要求按照:语、数、外的顺序进行排序。这时,就可以非常轻松的使用Decode完成要求了。

select * from table_subject order by decode(subject_name, '语文', 1, '数学', 2, , '外语',3)

java 中decode函数_oracle中decode函数的使用方法相关推荐

  1. mysql中sign函数_Oracle中sign函数和decode函数的使用

    在逻辑编程中,经常用到If ndash; Then ndash;Else 进行逻辑判断.在DECODE的语法中,实际上就是这样的逻辑处理过程.它的语法 1.比较大小函数SIGN sign(x)或者Si ...

  2. java中instr函数_Oracle中instr函数使用方法

    Oracle中instr函数使用方法 更新时间:2012年11月03日 00:53:51   作者: 在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置.只检索一次,就是 ...

  3. oracle 函数_oracle中row_number、rank、dense_rank() 的区别(over函数)

    row_number的用途非常广泛,排序最好用它,它会为查询出来的每一行记录生成一个序号,依次排序且不会重复,注意使用row_number函数时必须要用over子句选择对某一列进行排序才能生成序号. ...

  4. oracle java数据类型转换函数_Oracle基础——单行函数(类型转换函数)

    零点起飞学Oracle 正版现货 155.4元 (需用券) 去购买 > Oracle基础--单行函数(类型转换函数) 在执行运算的过程中,经常需要把一种数据类型转换成另一种数据类型. 数据转换分 ...

  5. java 提取违反顺序_oracle 中 java.sql.SQLException: ORA-01002: 提取违反顺序

    在一个流程中设置了一个机器人节点,目的是:审批结束后,通过update语句,将表单中的一些内容更新到数据库person_info_t的表中,并将更新前后的值记录到新表info_update_recor ...

  6. mysql nvl2 函数_Oracle的nvl函数和nvl2函数详解

    一.基本语法 介绍一下oracle的nvl函数和nvl2函数. nvl函数 nvl函数基本语法为nvl(E1,E2),意思是E1为null就返回E2,不为null就返回E1. nvl2函数 nvl2函 ...

  7. java substr函数_oracle 中的substr()函数的用法,以及与java中String.substring()方法的区别...

    oracle 中的substr()函数的规则是 substr( string, start_position, [ length ] ) 说明: string 是要分割的字符串 start_posit ...

  8. java中instr函数_Oracle中instr 函数的详解

    INSTR (源字符串, 目标字符串, 起始位置, 匹配序号) 在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置.只检索一次,就是说从字符的开始 到字符的结尾就结束. ...

  9. oracle 天转换成月函数_oracle中to_date详细用法示例(oracle日期格式转换)

    TO_DATE格式(以时间:2007-11-02 13:45:25为例) 1. 日期和字符转换函数用法(to_date,to_char) select to_char(sysdate,'yyyy-mm ...

最新文章

  1. SAP MM VL09试图取消收货报错说某个HU负库存
  2. 使用ESP32 MicroPython I2C功能读取 BH1750光度传感器模块数据
  3. 定义一个集合类Set,(考察动态数组的建立)
  4. 电脑小白学python_零基础的小白怎么学python?
  5. System.InvalidOperationException : 不应有 Response xmlns=''。
  6. [Stardust]星尘分布式全链路监控
  7. jpa java.util.map_使用JPA存储Map String,String
  8. 微型计算机生产制约因素,精品解析:广东省东莞市2019-2020学年高三下学期第一次统考(5月)模拟考试文科综合地理试题...
  9. 《JavaScript高效图形编程(修订版)》——6.7 画布绘制基础
  10. mamp 配置php,Mac OSX下使用MAMP安装配置PHP开发环境
  11. 微信小程序|开发实战篇之二
  12. ipython版本_1. Python版本的选择与安装
  13. Asp.net中Application Session Cookie ViewState Cache
  14. 10个好用的Web日志安全分析工具
  15. python中lower()函数的用法
  16. codeforces 664B B. Rebus(乱搞题)
  17. Centos7安装达梦(DM7)数据库
  18. FusionChartsFree例子
  19. 测试电池损耗的软件运行原理,鲁大师检测电池损耗原理解析
  20. linux不识别iwconfig,CentOS中iwconfig命令not found的解决方法

热门文章

  1. 报错:org.apache.jasper.JasperException: /index.jsp (line: 1, column: 17) equal symbol expected
  2. 如何解决软件项目管理中的冲突?
  3. QQ FOR LINUX 老是掉线
  4. 放苹果(组合+DFS)
  5. 【mysql】Mysql查看连接数(连接总数、活跃数、最大并发数)
  6. c++实现svpwm并带防飞车功能
  7. aws 安全组 acl_对AWS安全组和网络ACL进行故障排除时应了解的知识
  8. Stable Diffusion - AWPortrait 1.1 模型与 Prompts 设置
  9. 微信3.1.0.58逆向-微信3.1.0.58HOOK接口(WeChatHelper3.1.0.58.dll)使用说明-发布群公告(相当于@所有人)
  10. Linux 清理缓存,定时清理缓存脚本