在SQL(Oracle)中将十进制数转换为货币格式

4

我正在尝试弄清楚如何让我的结果只显示两位小数并带有货币符号。 目前我得到的是:

PARTID       PARTIDCOUNT    AVGPLANAMT
1001            27          17.02148148148148148148148148
1002            13          54.18615384615384615384615384 
1003             3          467.4166666666666666666666666
1009             5          862.27  

SELECT DISTINCT
D.PARTID,
COUNT(D.PARTID) AS PARTIDCOUNT,
AVG(D.PLANAMOUNT) AS AVGPLANAMT
FROM PARTS....

1
你有舍入或截断的需求吗? - Patrick Bacon
2个回答

4
以下是SQL Fiddle的内容(点击此处):
SELECT PARTID, COUNT(*) AS PARTIDCOUNT, 
       TO_CHAR(AVG(PLANAMOUNT), 'L999,999,999.00') AS AVGPLANAMT
FROM PARTS
GROUP BY PARTID

对于第二个参数,我使用的是 'L999,999,999.00',可处理任何不超过10亿的数字。如果您需要容纳更大的数字,则可以使用以下格式:'L999,999,999,999,999.00'


1
对于本地化的货币符号,您可能想使用 L 而不是 $ - Sylvain Leroux

1

要显示仅有两位小数,您可以使用ROUND功能。

ROUND(AVG(D.PLANAMOUNT), 2) AS AVGPLANAMT

有关 ROUND() 的更多信息可以在 这里 找到。

and currency 是什么意思?您只想在前面加上货币符号 $ 吗?

如果是的话,请尝试这个。

COLUMN AVGPLANAMT FORMAT $990.99

更多信息,请查看 这里

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接