oracle 中decode函数[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。
Oracle 中 decode 函数用法
含义解释: 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
eg:
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 sum(decode(性别,男,1,0)),sum(decode(性别,女,1,0)) from 表
eg:
select sum(decode(siteno,‘LT’,1,0)),sum(decode(siteno,‘SZ’,1,0)) from facd605;
select sum(case siteno when ‘LT’ then 1 else 0 end),sum(case siteno when ‘SZ’ then 1 else 0 end) from facd605; vinson
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/160092.html原文链接:https://javaforall.cn
相关文章
- oracle普通索引改唯一索引,Oracle唯一索引功能替代[通俗易懂]
- 深入浅出:Oracle 数据库组件简介(oracle数据库组件)
- Oracle之路:赵强的成功之旅(赵强oracle)
- 精通Oracle数据结构,提升技术实力(oracle数据结构)
- 字段修改Oracle字段可为空的技巧(oracle修改可为空)
- Oracle数据库中嵌套循环语句的使用方法(oracle嵌套循环语句)
- 消灭重复:使用Oracle删除重复字段(oracle删除重复字段)
- Oracle表使用技巧与技能分享(oracle表使用)
- 的使用使用Oracle函数NVL实现数据安全处理(oracle函数nvl)
- Oracle函数的调用方法.(调用函数oracle)
- 探索Oracle技术,让知识变得更加丰富(oracle技术论坛)
- Oracle数据库中函数的使用指南(oracle 入的函数)
- NVL函数在Oracle中的应用(nvl oracle英文)
- Adobe与Oracle联手构建数字化之路(adobe oracle)
- Oracle中构建强大数据转换的转换函数(oracle中的转换函数)
- Oracle中应用五大聚合函数提升数据分析效率(oracle五个聚合函数)
- 利用Oracle云App,体验极致科技享受(oracle云app)
- 深入浅出掌握Oracle中的函数方法(oracle中的函数方法)
- Oracle的外链接指导迈向最佳数据库性能(oracle中满外链接)
- 安全管理Oracle安全管理探索几类安全可用性(oracle中包有几类)
- Oracle VM全面优化你的虚拟化环境(oracle vm函数)
- Oracle SUM函数计算精度把它化整为零(oracle sum精度)