ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > 非Office软件 > Oracle中对不规律的数字进行处理

Oracle中对不规律的数字进行处理

作者:绿色风 分类: 时间:2022-08-18 浏览:160
楼主
DJ_Soo
Q:我的数据库中有一个字段下都是小数,而这些小数如果为0.n时,就会自动省略前面的0
我现在为了将0加上去,用了to_char(M_value,'fm999999990.99')
这样可以处理比较大的数字
但是还是有问题,我后来查了一下数据中最大最小的数字,分别为
9.9E+37和-9.25596E+61

这样的话,对于M_value的表示,用我写的to_char的方法有时会显示为######,应该如何改善写**
请大家帮忙,我提取数据出来类型可以不用为数字,只要显示正确就好.

比如0.5这个小数,在数据库中显示的是.5
我用to_char(M_value,'fm999999990.99')可以将.5转换为0.5,但是遇到很大或者很小的数字时就会出错,显示########,应该如何修改表示?
A:
  1. rtrim(decode(sign(abs(m_value)-1),-1,to_char(M_value,'fm0.99'),m_value),'.')

知识点Decode,类似于if判断,但有区别。
Sign可以有三种值,得到结果等于0时返回结果0,大于0时返回1,小于0时返回-1
abs为取绝对值
rtrim(Str,'.')可以去除Str中最右边的'.',这一句为了将最终数据中的'0.'转换为'0'

其中decode简单理解为:
decode(判断条件,结果1,执行1,结果2,执行2,Else执行..)
2楼
い卋玑┾宝珼
学习了,谢谢分享

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap