2017-03-05 43 views
-2

我想格式'$'美元符號列「c」這是兩個其他列乘以一起所有行的總和。我第一次把它變成一個字符如下:

SELECT TO_CHAR(SUM(a * b)) AS "c" 
    FROM table1; 

工作正常,但是當我加入格式化「L9,999.99」格式化它給出了一個錯誤:

SELECT TO_CHAR(SUM(a * b, 'L9,999.99') AS "c" 
    FROM table1; 

於是,我就這樣做一個鑄造:

SELECT TO_CHAR(CAST(SUM(a * b) AS NUMERIC(10,2)) AS "c" 
    FROM table1; 

但沒有任何工作。

如何使用TO_CHAR和/或CAST向具有SUM()函數的列添加'$'美元符號?

僅供參考,我想要的輸出是將:

C 
    10 
    10.05 
    11.50 

C 
    $10 
    $10.05 
    $11.50 
+1

,你會不會告訴我們它引發錯誤?如果您格式化文字數字,此格式是否工作?總和工作沒有格式?涉及的列的類型是什麼? – miracle173

+1

如果您使用相同數量的開合支架,它會起作用嗎? – JJJ

+0

我所有的數據類型都是數字(10,2)。提出的錯誤是:「ORA-01722:無效號碼」 – 5120bee

回答

0

擴大JJJ的評論:有一個paranthese缺少,下面應該工作:

SELECT TO_CHAR(SUM(a * b), 'L9,999.99') AS "c" 
FROM table1; 

聲明

SELECT TO_CHAR(SUM(a * b, 'L9,999.99') AS "c" 
FROM table1; 

將引發編譯時錯誤:

ORA-00909: invalid number of arguments 
+0

哦,對不起,這只是我輸入這個問題時的一個錯字。我的原始SQL語句確實有支架,但它仍然不起作用,這就是我在這裏問的原因。 – 5120bee

+0

@ 5120bee:那麼你想如何繼續?你認爲有人讀你的問題,然後閱讀這個評論,用它來重建你聲稱你已經執行的聲明,然後找到你的其他評論與錯誤信息,意識到(見亞歷克斯普爾對你的帖子的評論),這是不是你執行的陳述,猜測你執行的真實陳述,然後發佈一個有用的解決方案? – miracle173