Oracle中decode函数用法解析以及常用场景
1.decode函数的两种形式
第一种形式
含义解释:
decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)
该函数的含义如下:
IF 条件=值1 THENRETURN(翻译值1)
ELSIF 条件=值2 THENRETURN(翻译值2)......
ELSIF 条件=值n THENRETURN(翻译值n)
ELSERETURN(缺省值)
END IF
第二种形式
decode(字段或字段的运算,值1,值2,值3)
这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3
当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多
sign()函数
解释:
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1
用法示例:
select id,sign(id-2) from t_decode;
截图效果:
lpad()函数
在字段id前边补字段0 长度为2
select lpad(id,2,0) from t_decode;
2.decode的一些工作常用思路总结
a.准备测试数据
创建测试表t_decode,并插入测试数据
//创建表,插入数据,查询
create table t_decode(id integer,name varchar2(10)
);//插入数据
insert into t_decode values (1,'a');
insert into t_decode values (2,'b');
insert into t_decode values (3,'c');
insert into t_decode values (4,'a');
数据样式
b.第一种形式decode函数的常用思路
1. 简单使用:判断字符串
select id,name,decode(id,1,'第一个',2,'第二个',3,'第三个','没有') new_id
from t_decode;
2.使用decode函数分段
判断表中id大小并根据大小划分不同范围
(-,2) low
[2,4) mid
[4,-] high
select id,name,decode(sign(id - 4),1,'high id',0,'high id','-1',decode(sign(id - 2),1,'mid id',0,'mid id',-1,'low id'))
from t_decode;
c.第二种形式decode函数的常用思路
1. 比较大小
-- 比较大小
select decode(sign(100-90),-1,100,90) from dual;
2. 使用表达式来搜索字符串
判断name中是否含有a?
select id,name,decode(instr(name,'a'),0,'不含有a','含有a') as info from t_decode;
3. 实现行列转换
注意:decode相当于:case when then else end语句
select sum(decode(name,'a',id,0)) id_1,sum(decode(name,'b',id,0)) id_2,sum(decode(name,'c',id,0)) id_3 from t_decode;
添加测试:
select decode(name,'a',id,0) id_1,decode(name,'b',id,0) id_2,decode(name,'c',id,0) id_3
from t_decode;-- 相等于:case when then else end
select case name when 'a' then id else 0 end as id_1,case name when 'b' then id else 0 end as id_2,case name when 'c' then id else 0 end as id_3
from t_decode;
4. 结合Lpad函数,如何使主键的值自动加1并在前面补0
结合Lpad函数,如何使主键的值自动加1并在前面补0
select lpad(decode(count(id),0,1,max(to_number(id)+1)),14,'0') new_id from t_decode;
拆分详细讲解:
select * from t_decode
select lpad(id,2,0) from t_decode
select to_number(id) from t_decode;
select max(to_number(id)+1) from t_decode;
select decode(count(id),0,1,max(to_number(id)+1)) from t_decode;
select lpad(decode(count(id),0,1,max(to_number(id)+1)),14,‘0’) new_id from t_decode;
Oracle中decode函数用法解析以及常用场景相关推荐
- oracle 的wecate函数,1.Oracle中decode()函数用法
1.Oracle中decode函数用法 含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻 ...
- oracle+decode函数用法,oracle中decode函数用法
oracle中decode函数用法以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! DECODE函数相当于一条件语句(IF ...
- linux decode函数,Oracle 中 decode 函数用法
Decode函数与一系列嵌套的 IF-THEN-ELSE语句相似.base_exp与compare1,compare2等等依次进行比较.如果base_exp和 第i 个compare项匹配,就返回第i ...
- Oracle 中 decode 函数用法
转载自:http://www.cnblogs.com/vinsonLu/p/3512526.html 含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该 ...
- oracle decode别名,Oracle中decode函数用法 VelHong
DECODE函数与一系列嵌套的 IF-THEN-ELSE语句相似.base_exp与compare1,compare2等等依次进行比较.如果base_exp和 第i 个compare项匹配,就返回第i ...
- oracle decode嵌套,Oracle 中 Decode函数用法 | YuXi
含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THE ...
- oracle中decode函数用法及应用
用法 1.decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 相当于if else 那种方式. 2.decode(字段或字段的运算,值1,值2,值3) 当字段或字段的运 ...
- oracle 中decode函数
Oracle 中 decode 函数用法 含义解释: decode(条件,值1,返回值1,值2,返回值2,-值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻译 ...
- java decode函数用法_Oracle 中 decode 函数用法
含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THE ...
最新文章
- cad文本改宋体字型lisp_CAD绘图员必须掌握的15个高能技巧,别人3天工作量你半天搞定!...
- mysql第五章事务_mysql 第五章 备份恢复
- FindBugs工具常见问题
- php人工智能客服,人工智能技术在客服中心的四大应用
- 几种常见的RAID形式
- 提取字符串中的多个连续数字
- 你的模型真的陷入局部最优点了吗?
- Facebook与MySpace实现即时通讯一体化
- 禁用安全模式(2k,2k3,xp)
- OpenShift 4 Hands-on Lab (8) 基于Gogs+Nexus+Sonarqube的Jenkins CI/CD Pipeline
- java 数据库操作教程_数据库基本操作:增删改查及联表操作
- json标准格式举例_JSON格式简介及一些对应函数
- 台式机装苹果系统_苹果、华为出手,ARM取代X86芯片这也是国产CPU的巨大机会
- 大数据营销咨询公司AIO获数百万美元天使轮融资
- 总结一波 Redis 面试题,收藏起来!
- Java向word文档中添加水印
- Exynos4412 移植针对Samsung的Linux-6.1(二)SD卡驱动——解决无法挂载SD卡的根文件系统
- 恐龙插件_迎接年度开放式恐龙
- (转)一个屌丝的养龟经历
- android 拆除触摸屏,酷比魔方U55GT(TALK79)拆机更换触摸屏
热门文章
- 阿里云SLS——云上的辛勤山寨者
- 天下手游服务器维修,天下手游无法登陆怎么解决 无法登陆原因及解决方案一览_3DM手游...
- DDR3内存参数配置
- Circos入门教程
- <python开发> python开发 环境搭建(windows)
- R语言 读取csv文件 有关无法打开表格以及表格位置不对问题【已解决】
- mysql报文格式_GitHub - YMBo/sflow_traffic: python解析报文(支持格式sflow、gre等)并存储到mysql...
- 关于ZEDBOARD上PROG按键以及ZYNQ中PROG脚的作用的分析
- 《中国人工智能学会通讯》——12.15 时空众包 : 共享经济时代的新型计算范式...
- 好分数班级等级C_2020年上海高校MTA旅游管理硕士分数线汇总