使用TO_CHAR返回标签将数字字段格式化为货币

问题描述 投票:0回答:1

我正在运行一个简单的总和,并在Oracle数据库的NUMBER字段上转换为货币。

我的查询是:

select 
TO_CHAR(eve.data_entry_date, 'yyyy-mm'), wtc.description as WORK_TYPE,
TO_CHAR(sum(sev.amount),'$999,999.99') AS "Total Invoice Amount"

from
EVENT eve,
SOW_EVENT sev,
WORK_TYPE_CODE wtc, 
SOW_WORK_TYPE_XREF swt,
WORK_TYPE_ITEM_CODE wti

where 
eve.event_number_id = sev.event_number_id
and sev.WORK_TYPE_CODE = WORK_TYPE_CODE
and sev.event_number_id = swt.event_number_id

group by 
TO_CHAR(eve.data_entry_date, 'yyyy-mm'), wtc.description

查询成功运行,但是“总发票金额”列中显示的金额正在返回井号,例如:

Year-Month   WORK_TYPE         Total Invoice AMount
2019-01      Physical Work     ############
2019-01      Technical Work    ############

我以为我只需要调整列的大小,但这是行不通的。当我刚跑步时:

sum(sev.amount)

它会填充金额,只是不会将其格式化为货币,因为“金额”列是数字列。知道为什么我在格式化为货币时会得到主题标签吗?

sql oracle sum hashtag currency-formatting
1个回答
0
投票

From the documentation

如果值不能容纳在列中,SQL * Plus将显示井号(#)而不是数字。

您的格式掩码需要足够的数字占位符,以实现您期望看到的最大值。目前值似乎超过一百万。

© www.soinside.com 2019 - 2024. All rights reserved.