【问题标题】:TO_CHAR function for handling decimal format用于处理十进制格式的 TO_CHAR 函数
【发布时间】:2015-02-17 11:08:20
【问题描述】:

我有一个带有 varchar(19,4) 的数据列。如何以正确的十进制格式显示它,例如我想显示 1000000.0000 而不是 1000000 (需要以特定格式显示某些第三方文件处理)。目前我使用 TO_CHAR(columnName,'9999999999999999999.9999') 并以预期的格式显示,但我想知道是否有更好的方法而不是写 9 19 次!

【问题讨论】:

  • 首先查看 Oracle 文档 - docs.oracle.com/cd/B19306_01/server.102/b14200/…
  • VARCHAR(19, 4) - 据我所知,这不是 Oracle 中的有效声明。 Oracle 11.1 拒绝接受它作为列定义或 PL/SQL 变量声明。它似乎也不是其他数据库中的有效声明,例如SQL Server 或 MySQL。 ???
  • TO_CHAR(columnName,'9.9999') 也应该这样做。

标签: oracle numbers decimal to-char


【解决方案1】:

为了简化符号,您可以使用lpad 函数,如下所示:

with test as (
  select 1234567890123456789.1234 columnName from dual
  union select -7.12 from dual
  union select 108.0015 from dual
  )
select to_char(columnName, lpad('9', 19, '9')||'.9999') res
  from test

RES
------------------------
                 -7.1200
                108.0015
1234567890123456789.1234

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-22
    • 2014-11-11
    • 2021-12-02
    • 1970-01-01
    • 2018-05-11
    • 2013-08-22
    相关资源
    最近更新 更多