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

时间:2014-09-26 20:12:01

标签: sql oracle decimal

我正在试图找出如何让我的结果只显示两位小数和货币,如果可以的话。 现在我得到了这个:

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....

2 个答案:

答案 0 :(得分: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 :(得分:1)

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

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

有关ROUND()的更多信息,请here

and currency你是什么意思?你只想在前面的货币符号$?

如果是这样,试试这个。

COLUMN AVGPLANAMT FORMAT $990.99

有关详情,请查看here