oracle中update语句使用case when

有两种常用的情况

第一种是要更新的字段根据表的某个字段内容判断,实例如下:

update T_LANDINFO_REQ set
OPERATE_TYPE=(case OPERATE_TYPE when 'D' then 'I' else 'U' end) 
where id = 1

上面sql的用意是,如果OPERATE_TYPE的字段内容为D,就把字段值更新为I,如果不为D,则更新为U

 

第二种是要更新的字段根据另外一张表的记录判断,实例如下:

update MID_LA_LTG_STATS set
OPERATE_TYPE =(case (select count(1) from MID_LA_LTG_STATS_CHK where ID =1) when 0 then 'I' else 'U' end)
where ID =1

 上面sql的用意是,如果MID_LA_LTG_STATS_CHK表中ID为1的记录存在,那么OPERATE_TYPE字段的值更新为U,如果不存在则更新为I

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值