sql避免科學計數法並保留兩位小數


SELECT
        trim(to_char(ROUND((sum(a.BUYE_TRADE_TOTAL)-sum(a.SELL_TRADE_TOTAL)),2), '9999,999,990.00')) AS cQutantity,trim(to_char(ROUND(sum(a.AMOUNT),2), '9999,999,990.00')) AS CAmount,trim(to_char(ROUND(decode(sum(a.QUTANTITY),0,null,sum(a.AMOUNT)/sum(a.QUTANTITY)),2), '9999,999,990.00')) AS CAvgPrice
        FROM
        POSITION a

結果:

以trim(to_char(ROUND(sum(a.AMOUNT),2), '9999,999,990.00')) AS CAmount為例:

(1)ROUND(A/B,2),ROUND()函數會將計算結果進行四舍五入。參數:第一個是你的計算表達式,第二個是需要保留的小數位數。

         不需要四舍五入直接用表達式,或用TRUNC(A/B,2)。

   trim(to_char(sum(a.AMOUNT), '9999,999,990.00')) AS CAmount

(2)使用trim( )函數將字符串左側空白去掉。

(3)TO_CHAR(A/B,‘99990.00’)

TO_CHAR()是一個格式化函數,第一個參數是計算表達式,第二個參數是指定格式化的格式,如果保留兩位小數則小數點后寫兩個00

第二個參數中常用的替換符0和9,分別代表如下含義:

0:零,在對應位置返回對應的字符,如果沒有則以’0’填充。
9:在小數位,則表示轉換為對應字符,如果沒有則以0表示;在整數位,沒有對應則不填充字符.
二者最大的區別是:對應位沒有則填0,而9不填充字符;
二者共同點:如果格式的位數不如數字的位數多,則返回‘#’


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM