这个实际上很简单,但我找不到任何有用的东西。

在我的 SQL 查询中,我有一些带有单个比例值的四舍五入数字 - round(number,1)。如果数字四舍五入为某个十进制数字,则以“9,9”格式打印。

另一方面,如果数字四舍五入为整数,则只打印逗号后没有零的整数值,尽管我希望我的查询选择“9,9”格式的数字,即使十进制数字为零。

简而言之,我想我需要类似的东西
to_char((select round(121.01,1), from dual), '*,1') ; 输出 121,0

做这个的最好方式是什么?提前致谢

科尔汗

最佳答案

您所要做的就是在 to_char 中指定您想要的小数点数。使用格式掩码的问题是您需要在小数点前指定所需的数字数量。

SQL> select to_char(round(121.01,1),'999.9') from dual;

TO_CHA
------
 121.0

SQL> select to_char(round(121.4,1),'999.9') from dual;

TO_CHA
------
 121.4

SQL> select to_char(round(121,1),'999.9') from dual;

TO_CHA
------
 121.0

SQL> select to_char(round(5121,1),'999.9') from dual;

TO_CHA
------
######

SQL>

还有许多其他 formatting options

关于具有任意精度和一定比例的数字格式的 Oracle to_char 函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9225711/

10-11 02:56