例子:
select to_char(0.596,'FM999,999,999,990.00') from dual
它的执行结果如下:0.60
怎样使查出来类似0.60的小数带0,答案是:使用如上的格式即可
1:其9代表:如果存在数字则显示数字,不存在则显示空格
2:其0代表:如果存在数字则显示数字,不存在则显示0,即占位符。
3:其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
其结果是:
4:四舍五入:0.596变成了0.60。
如果不要四舍五入,则需要trunc下,具体如下:
select to_char(trunc(0.596,2),'FM999,999,999,999,990.00') from
dual
其结果是0.59
5:解决列表100,000,000的情况
select to_char(10000000000,'FM999,999,999,990.00') from dual
上面的功能适用于固定小数点格式。而如果没有小数点了?
6:解决整数后面多个点的情况
select to_char(10000000000,'FM999,999,999,990.99') from dual
会出现类似的情况:10,000,000,000.
此类的解决方案则需要进行先判断词数据是否包含.(点的情况)
如果有点则 instr()下,否则直接to_cahr()