我有一个带varchar(19,4)的数据列。我如何以适当的十进制格式显示它,例如我想仅显示1000000.0000而不是1000000(需要特定格式的文件处理由第三个paty)。目前我使用TO_CHAR(columnName,'9999999999999999999.9999'),它以预期的格式显示,但我想知道是否有更好的方法,而不是写9次19次!
答案 0 :(得分:0)
为简化表示法,您可以使用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