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,值2,0,值3)
如果a-b大于0则可以赋值1给a
如果a-b小于0则可以赋值2给a
如果a-b等于0则可以赋值3给a
(二)方法二

最总结果

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