oracle查询时根据某一列的条件修改部分列值

oracle查询时根据某一列的条件修改列值
(有点拗口),请往下看

一前提:

业务数据车辆表,简化一下吧,共三列,
计算的列为number类型
id(主键):id
吨位:gross_mass
核定载质量:vehicle_tonnage

查询结果替换加个判断,
吨位(gross_mass)如果小于核定载质量(vehicle_tonnage)
那么吨位(gross_mass)=吨位(gross_mass)+核定载质量(vehicle_tonnage)

即查出来
如果 gross_mass<vehicle_tonnage
gross_mass=gross_mass+vehicle_tonnage
其他的就不变

这里id涉及业务,我就屏蔽了
在这里插入图片描述

做法

(一)方法一:这里用到decode(sign)语句来查询了

修改字段查询方式:gross_mass
修改为:
DECODE(SIGN(gross_mass-vehicle_tonnage),-1,
gross_mass+vehicle_tonnage,1,
gross_mass,0,gross_mass) AS gross_mass

示例说明:

decode(sign(a-b),1,1-1,值20,值3)

如果a-b大于0则可以赋值1给a
如果a-b小于0则可以赋值2给a
如果a-b等于0则可以赋值3给a
(二)方法二
在这里插入图片描述

最总结果

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值