Oracle的decode函数和sign函数用法(decode相当于if条件判断)

以前用mysql用习惯了,当前公司用的oracle,遇到一些复杂一丢丢的sql处理就有点不顺手了,所以在网上百度出了一个oracle的条件判断函数decode()

 

1、decode()函数: 

复制代码
decode()方法使用结构:

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


简单例子就是: select id, username, age, decode(sex,0,'男',1,'女') from users;


===================================================================================================================================
当你的条件值返回的不是固定1,2,3这种值的时候,有可能会返回null或有值,就可以用到sign()函数了



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



如我们要修改A表,然后A表中与B表的字段有关联,来判断B表是否有属于A表的数据,有则修改A表中的state状态为:1或2或3,效果如下

先用select sign(count(B.id)) from B表 B where 条件1=xxx 得出是0,还是1;没数据为0,有数据为1

update A表 A set
A.corp_submit_state = decode((select sign(count(B.id))from B表 B
where B.audit_flag = 2 and B.valid_flag = 1 and B.CONT_PARTY_A = A.corp_id),0,'0',1,'2')
-- where A.corp_id = 249





复制代码

 

posted @   下课后我要去放牛  阅读(990)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示