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

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

一前提:

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

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

即查出来
如果 gross_mass
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
(二)方法二
在这里插入图片描述

最总结果

在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部