我正在从Oracle表生成一个文件,其中一列是NUMBER数据类型。
列定义是:
Amount NUMBER(13,2)
在这一栏中,我有数据,其中一些有小数点,有些则没有。
e.g
1234.45
1245
1234.23
在获取数据时,如果没有小数点的值,我希望数据附加00
(,因为比例为2 )。对于带小数的值,它应该是原样。
e.g.
1234.45
1245.00
1234.23
我该怎么做?
我不能简单地用0
填充,因为它是基于条件的。如果有小数点,我无法确定如何附加0s
。
答案 0 :(得分:2)
您可以使用 to_char(col_name,'9999.00')
9s代表可选占位符。 0表示放入前导零。
答案 1 :(得分:2)
您可以将其转换为字符并使用FM999999999.00
格式化程序:
SELECT TO_CHAR(your_column, 'FM999999999.00') AS RES FROM DUAL
FM
是填充模式。允许可变长度的数字作为掩码中十进制之前提供的数字的子集,因此999999999 = 9位,也可以容忍8位数。但它不会接受小数点前的10位数。
.00
表示该点后的小数位数,如果您在小数点后添加更多位数,它们将被舍入,例如100.246
==> 100.25
。
格式模型修饰符参考: https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm#BABDAEDF