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函数用法解析以及常用场景相关推荐

  1. oracle 的wecate函数,1.Oracle中decode()函数用法

    1.Oracle中decode函数用法 含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻 ...

  2. oracle+decode函数用法,oracle中decode函数用法

    oracle中decode函数用法以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! DECODE函数相当于一条件语句(IF ...

  3. linux decode函数,Oracle 中 decode 函数用法

    Decode函数与一系列嵌套的 IF-THEN-ELSE语句相似.base_exp与compare1,compare2等等依次进行比较.如果base_exp和 第i 个compare项匹配,就返回第i ...

  4. Oracle 中 decode 函数用法

    转载自:http://www.cnblogs.com/vinsonLu/p/3512526.html 含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该 ...

  5. oracle decode别名,Oracle中decode函数用法 VelHong

    DECODE函数与一系列嵌套的 IF-THEN-ELSE语句相似.base_exp与compare1,compare2等等依次进行比较.如果base_exp和 第i 个compare项匹配,就返回第i ...

  6. oracle decode嵌套,Oracle 中 Decode函数用法 | YuXi

    含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THE ...

  7. oracle中decode函数用法及应用

    用法 1.decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 相当于if else 那种方式. 2.decode(字段或字段的运算,值1,值2,值3) 当字段或字段的运 ...

  8. oracle 中decode函数

    Oracle 中 decode 函数用法 含义解释: decode(条件,值1,返回值1,值2,返回值2,-值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻译 ...

  9. java decode函数用法_Oracle 中 decode 函数用法

    含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THE ...

最新文章

  1. cad文本改宋体字型lisp_CAD绘图员必须掌握的15个高能技巧,别人3天工作量你半天搞定!...
  2. mysql第五章事务_mysql 第五章 备份恢复
  3. FindBugs工具常见问题
  4. php人工智能客服,人工智能技术在客服中心的四大应用
  5. 几种常见的RAID形式
  6. 提取字符串中的多个连续数字
  7. 你的模型真的陷入局部最优点了吗?
  8. Facebook与MySpace实现即时通讯一体化
  9. 禁用安全模式(2k,2k3,xp)
  10. OpenShift 4 Hands-on Lab (8) 基于Gogs+Nexus+Sonarqube的Jenkins CI/CD Pipeline
  11. java 数据库操作教程_数据库基本操作:增删改查及联表操作
  12. json标准格式举例_JSON格式简介及一些对应函数
  13. 台式机装苹果系统_苹果、华为出手,ARM取代X86芯片这也是国产CPU的巨大机会
  14. 大数据营销咨询公司AIO获数百万美元天使轮融资
  15. 总结一波 Redis 面试题,收藏起来!
  16. Java向word文档中添加水印
  17. Exynos4412 移植针对Samsung的Linux-6.1(二)SD卡驱动——解决无法挂载SD卡的根文件系统
  18. 恐龙插件_迎接年度开放式恐龙
  19. (转)一个屌丝的养龟经历
  20. android 拆除触摸屏,酷比魔方U55GT(TALK79)拆机更换触摸屏

热门文章

  1. 阿里云SLS——云上的辛勤山寨者
  2. 天下手游服务器维修,天下手游无法登陆怎么解决 无法登陆原因及解决方案一览_3DM手游...
  3. DDR3内存参数配置
  4. Circos入门教程
  5. <python开发> python开发 环境搭建(windows)
  6. R语言 读取csv文件 有关无法打开表格以及表格位置不对问题【已解决】
  7. mysql报文格式_GitHub - YMBo/sflow_traffic: python解析报文(支持格式sflow、gre等)并存储到mysql...
  8. 关于ZEDBOARD上PROG按键以及ZYNQ中PROG脚的作用的分析
  9. 《中国人工智能学会通讯》——12.15 时空众包 : 共享经济时代的新型计算范式...
  10. 好分数班级等级C_2020年上海高校MTA旅游管理硕士分数线汇总