解决oracle中0开头的小数,0消失的问题
问题复现:
今天在开发的过程中,遇到这种情况
然后又去oracle数据库里,查看一番,发现数据库寸的是0.9,这个零竟然离奇消失了。
原因
为何小数点前0会省略,是因为Oracle数据库中存在一个隐形类型转换,在拼接的过程中小数自动转成字符类型,相当于调用了to_char函数,所以丢失小数点前面的0
解决方式一:
加上to_char(字段,’fm9999999999999990.00’) ,(查看表结构设计,我这里类型是number(16,2),所以设置前面小数点前面最多16位,后面保留2位)
解释:
其中9代表如果存在数字则显示数字,不存在则显示空格;
0代表如果存在数字则显示数字,不存在则显示0,即占位符;
fm代表删除如果是因9带来的空格,则删除。
解决方式二:
decode(SUBSTR(字段,1,1),'.','0'||字段,字段) 字段别名
解释:
截取值,如果开头是 小数点,那么加个0然后拼接上字段,如果不是,不做改变即可。
总结:
处理的办法有很多,当然能解决问题就可以
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战