始终在oracle的整数结尾处显示十进制数

时间:2014-07-29 19:13:19

标签: oracle oracle11g

我有一个要求,我总是需要用小数点显示数字。 db列的数据类型是number的数据类型。

如果值为1.25,则显示为1.25 但如果值为1,它会显示为1,我需要将值显示为1.00。

一旦我得到十进制格式的结果,我需要执行rpad(右边填充)操作。 如果没有小数,整数的值将与数据库中的值不同。

示例:

SELECT RPAD(ROUND(12,2), 5 ,0) AS test
  FROM DUAL;

结果为12000,而我预期为12.00。

任何关于此的指示都会有所帮助。 谢谢!

3 个答案:

答案 0 :(得分:2)

使用适当的to_char电话。像

这样的东西
SELECT to_char( <<your number>>, '0.00' )
  FROM dual;

当传入值1时,将返回字符串“1.00”。如果传入值0,则返回字符串“0.00”。如果传入的值为1.25,则返回字符串“1.25”。

答案 1 :(得分:1)

尝试使用数字格式和TO_CHAR函数,如下:

SELECT TO_CHAR(12, 99.99) AS test
FROM DUAL;

<强>参考

您可以找到与格式化数字here的其他方式相关的文档。

答案 2 :(得分:0)

试试这个:

select TRIM(to_char(100.5, '99999999.00')) FROM DUAL

格式规范如下: http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm#i34570