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
分类:
Oracle
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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搭建本