2016-06-29 38 views
0

十進制我知道我需要返回Oracle中列的總和我使用的查詢是以下的Oracle SQL:返回和查詢結果精確

select sum(scores) from table_x; 

我想要回總是導致這樣

如果結果是一個整數,表示1000中,輸出應爲1000.00(默認2精度位數的小數部分)

如果結果是具有n位精度的小數,在結果將被返回,例如,如果sum = 1000.555666,那麼我想要的結果是1000.555666。

問題是,當我修改使用鑄像

select cast(sum(scores) as binary_double) from table_x 

當總和是1000,我得到的結果爲1000.0查詢,但我想,因爲在小數部分(1000.00)多了一個零我做結果的字符串比較。嘗試了許多解決方案,如投射到不同的數據類型,但無法以我想要的形式獲得整數結果。

+0

返回值可以是VARCHAR2? – Grayson

+0

無所謂,我有一個包裝腳本,可以將所有返回的字符串轉換成任何返回值,所以只要有小數點後兩位都是零,那就行了。 – sysuser

回答

1

嘗試:

select to_char(sum(scores), 'FM9999999999D009999') 
from table_x; 

請參考to_char功能的文檔細節==>click

+0

工作正常,我會查看文檔以瞭解更多信息。 – sysuser