【问题标题】:Leading Zero is getting truncated in Oracle SQL query while doing currency format在进行货币格式时,前导零在 Oracle SQL 查询中被截断
【发布时间】:2020-09-17 14:35:58
【问题描述】:

查询:

select to_char('0.00', '$999,999,999,999,999.99') from dual;

实际输出:

$.00

预期输出:

$0.0

【问题讨论】:

    标签: sql string oracle select


    【解决方案1】:

    这是你想要的吗?

    select to_char('0.00', '$999,999,999,999,990.9') from dual;
    

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

    【讨论】:

    • 另请注意,“to_char('0.00',) 实际上是向 to_char 发送一个字符串。那是因为您将数字括在单引号中,使其成为字符串,而不是数字。这迫使 oracle 在您的数字上执行隐式 TO_NUM,这实际上是一个字符串。您想要的是“select to_char(0.00,) - 数字周围没有单引号。在你的情况下,最终结果是一样的,但它是草率的编码,这样的习惯有一天会回来咬你。
    猜你喜欢
    • 2019-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 2014-10-22
    • 1970-01-01
    相关资源
    最近更新 更多