DB2資料庫學習總結(一)——round函式用法
阿新 • • 發佈:2018-12-10
DB2資料庫需要用到兩個函式實現四捨五入,分別是:CAST、round round函式本身就是實現四捨五入,為什麼還要用CAST函式? 案例講解: 建立一張測試表用於模擬四捨五入的情景。對於金額欄位一般將型別定義為DECIMAL(xx,2)保留兩位小數。
CREATE TABLE TEST1(
money DECIMAL(31,2)
);
INSERT INTO TEST1 VALUES (23.44);
模擬:對金額計算後的結果四捨五入,23.44/5 = 4.688, 四捨五入後 = 4.69
SELECT round(23.44/5,2) AS MONEY1, round(t.MONEY/5,2) AS MONEY2, round(CAST(t.MONEY AS DECIMAL(31,3))/5 ,2) AS MONEY3, CAST(round(CAST(t.MONEY AS DECIMAL(31,3))/5 ,2) AS DECIMAL(31,2)) AS MONEY4 FROM TEST1 t;
輸出結果: 解析: MONEY1:DB2首先計算23.44/5 = 4.688,DB2自動將4.688格式化為DECIMAL(31,29),然後再round(4.688,2) = 4.69 MONEY2:DB2首先計算t.MONEY/5 = 4.68,計算結果實為4.688,但計算過程中產生了型別格式化,DB2自動將結果匹配為MONEY欄位型別DECIMAL(31,2)產生了小數位截斷的情況,然後再round(4.68,2) = 4.68 (單用round函式未達到預期的結果)MONEY3:CAST(t.MONEY AS DECIMAL(31,3))將MONEY型別擴充套件為保留3位小數,計算CAST(t.MONEY AS DECIMAL(31,3))/5 = 4.688 ,然後再round(4.688,2) = 4.69 (推薦方法)