如果值没有小数点,则无法在列值中附加0

时间:2017-06-23 12:53:44

标签: oracle

我正在从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

2 个答案:

答案 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