oracle小數點前零丟失的問題

1.問題起源 
      oracle  數據庫 字段值爲小於1的小數時,使用char類型處理,會丟失小數點前面的0 
      例如0.35就變成了.35 
2.解決辦法:
(1)用to_char函數格式化數字顯示 
      select     to_char(0.338,'fm9999999990.00') from dual; 
     結果:0.34 
     這裏重點要看 fm9999999999.99,表示整數部分最多10位,小數部分2位,fm表示去 掉轉位字符串後前面的空格,不加fm,0.34前面會有空格的. 
(2)使用decode函數 
    既然小於1的小數首位必然是'.',那就判斷首位是否爲'.',是則在前面加上'0'便可 
SQL> select decode(substr(num,1,1),'.','0'||num,num) from t1_number 
DECODE(SUBSTR(NUM,1,1),'.','0'||NUM,NUM)
-----------------------------------------
0.3268
0.57965686
52345234.5686
4.552686
5.292 
相關文章
相關標籤/搜索