Oracle 格式化整数和浮点数 11g

Oracle format integers and float 11g

我要格式化

if integer: then integer
if float: then float.xx(2 precision)

我有一列的值为整数或浮点数。我也希望输出以逗号分隔。我一直在使用以下行。

TO_CHAR(number,FM999G999G999D99) "Output",

我得到的输出类似于

INPUT
--------
1234
1234.56
--------

TO_CHAR(INPUT,FM999G999G999D99) "Output",


OUTPUT
--------
1234.
1234.56
--------

我想要的输出是

OUTPUT
--------
1234
1234.56
--------

我不想'.'在整数的末尾。 请帮忙。

您可以使用类似下面的内容

      TO_CHAR(INPUT,DECODE(INPUT,TRUNC(INPUT),'FM999G999G999','FM999G999G999D99'))