转载自:https://blog.csdn.net/fupengyao/article/details/52778565
遇到了oracle 取数格式问题,这里记一下
我们通常在做数据算数后,会想要让它显示自己需要的格式,这里介绍一种简单的方式
to_char(数据,'FM999,999,999,999,990.00')
例子:
select to_char(0.59/1.00*100,'FM999,999,999,999,990.00')||'%' from dual
结果为:59.00%
下面是详细介绍(copy的)
select to_char(0.596,'FM999,999,999,990.00') from dual
它的执行结果如下:
怎样使查出来类似0.60的小数带0,答案是:使用如上的格式即
①其9代表:如果存在数字则显示数字,不存在则显示空格
②其0代表:如果存在数字则显示数字,不存在则显示0,即占位符。
③其FM代表:删除如果是因9带来的空格,则删除之
具体区别可以见
Selec length(to_char(1.00,'999,999,999,999,999,999,999,990.00')), length(to_char(1.00,'FM999,999,999,999,999,999,999,990.00')) from dual
其结果是:
④四舍五入:0.596变成了0.60不知道大家注意到了没有。如果不要四舍五入,则需要trunc下,具体如下:
其结果是0.59
⑤解决列表100,000,000的情况
select to_char(10000000000,'FM999,999,999,990.00') from dual
上面的功能适用于固定小数点格式。而如果没有小数点了?
⑥解决整数后面多个点的情况
select to_char(10000000000,'FM999,999,999,990.99') from dual
会出现类似的情况:10,000,000,000.
此类的解决方案则需要进行先判断词数据是否包含.(点的情况)
如果有点则 instr()下
否则直接to_cahr()
此功能适用于:页面展示不出0(类的自定义的属性,A类不存在属性b,通过sqlMap查询赋值的情况下适合,正常情况下不需要使用),前后台列表展示不显示0,前后台列表的10,000,000,000格式。