执行货币格式时,Oracle SQL查询中的前导零被截断

执行货币格式时,Oracle SQL查询中的前导零被截断,sql,string,oracle,select,Sql,String,Oracle,Select,查询: 实际产量: select to_char('0.00', '$999,999,999,999,999.99') from dual; 预期产出: $.00 这是你想要的吗 $0.0 第一个数字上的0强制Oracle显示某些内容,即使该数字不重要。我还将说明符改为只有一个十进制数,而不是两个。非常好,非常感谢:)还要注意“to_char('0.00')”实际上是将字符串发送到\u char。这是因为您将数字括在单引号中,使其成为字符串,而不是数字。这迫使oracle对您的数字执行隐式

查询:

实际产量:

select to_char('0.00', '$999,999,999,999,999.99') from dual;
预期产出:

$.00
这是你想要的吗

$0.0

第一个数字上的
0
强制Oracle显示某些内容,即使该数字不重要。我还将说明符改为只有一个十进制数,而不是两个。

非常好,非常感谢:)还要注意“to_char('0.00')”实际上是将字符串发送到\u char。这是因为您将数字括在单引号中,使其成为字符串,而不是数字。这迫使oracle对您的数字执行隐式to \u NUM操作,即-is-really-a-string。您需要的是“select to \u char(0.00),”——而不在数字周围加单引号。在您的情况下,最终结果是一样的,但它是草率的编码,这样的习惯总有一天会回来咬你。
select to_char('0.00', '$999,999,999,999,990.9') from dual;