oracle小數點前零丟失的問題

1.問題起源  
      oracle  數據庫 字段值爲小於1的小數時,使用char類型處理,會丟失小數點前面的0  
      例如0.2就變成了.2 
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) 
相關文章
相關標籤/搜索