oracle 小數點前零丟失的問題

2021-06-05 14:12:13 字數 711 閱讀 9156

1.問題起源

oracle 資料庫字段值為小於1的小數時,使用char型別處理,會丟失小數點前面的0

例如0.35就變成了.35

2.解決辦法:用to_char函式格式化數字顯示

select 

to_char(0.338,'fm9999999990.00') from dual;

結果:0.34

這裡重點要看 fm9999999999.99,表示整數部分最多10位,小數部分2位,fm表示去掉轉位字串後前面的空格,不加fm,0.34前面會有空格的.

3.with的使用

with tmp1 as (

select 1 as a, 2 as b from dual

union

select 1 as a, 3 as b from dual

union

select 1 as a, 4 as b from dual

),tmp2 as (

select 1 as a, 2 as b from dual

union

select 1 as a, 3 as b from dual

union

select 2 as a, 4 as b from dual )

select tmp1.*,tmp2.*

from tmp1 join tmp2

on tmp1.a = tmp2.a

oracle 小數點前零丟失的問題

1.問題起源 oracle 資料庫字段值為小於1的小數時,使用char型別處理,會丟失小數點前面的0 例如0.35就變成了.35 2.解決辦法 用to char函式格式化數字顯示 select to char 0.338,fm9999999990.00 from dual 結果 0.34 這裡重點要...

oracle查詢不顯示小數點前的0

1.問題起源 oracle 資料庫字段值為小於1的小數時,使用char型別處理,會丟失小數點前面的0 例如0.35就變成了.35 2.解決辦法 用to char函式格式化數字顯示 select to char 0.338,fm9999999990.00 from dual 結果 0.34 這裡重點要...

oracle小數點保留問題

最近公司有個業務清單提取需求,需要使用百分率,保留2位小數,其實只用round就可以實現 round data,2 但是格式不是很工整,對格式要求不嚴謹的情況下使用round即可,以下是網路搜尋到的處理方法 方法一 使用to char的fm格式,即 to char round data.amount...