解決Oracle的數值0 1只顯示成 1問題

2021-07-14 12:08:20 字數 1290 閱讀 2610

oracle對數值0.n轉換成char型別的時候會自動忽略前面的0(原因好像是為了節省空間0.1儲存到資料庫為.1)。例如:

[sql] view plain copy

01.sql> select to_char(0.1) from  dual;  

02.to_char(0.1) 

03.------------ 

04..1

解決方法:

[sql] view plain copy 在code上檢視**片派生到我的**片

01.方法一、 

02.select case 

03.         when l_num like '.%' then 

04.          '0'||l_num 

05.         else 

06.          to_char(l_num) 

07.       end sal 

08.  from dual; 

[sql] view plain copy 在code上檢視**片派生到我的**片

01.方法二、 

02.select decode(substr(l_num,1,1),'.','0'||l_num,l_num) from  dual;  

實驗如下:

[sql] view plain copy

01.對方法一進行實驗,為了區分開來,使用不同數值替換 

02.sql> select case 

03.  2           when 0.5 like '.%' then 

04.  3            '0'||.11111

05.  4           else 

06.  5            to_char(6666) 

07.  6         end sal 

08.  7    from dual; 

09.sal 

10.------- 

11.0.11111

[sql] view plain copy

01.方法二進行實驗,為了區分使用不同數值進行替換 

02.sql> select decode(substr(0.1,1,1),'.','0'||.55555,6666) from  dual;  

03.decode(substr(0.1,1,1),'.','0' 

04.------------------------------ 

05.0.11111

Oracle踩坑之解決數值0 2只顯示成 2方法

最近在做統計查詢時,遇到乙個數值0.2查詢出來卻顯示.2的問題,於是查詢原因,發現oracle對數值0.n轉換成char型別的時候會自動忽略前面的0。本文將通過實際案例講解怎麼解決這種問題。實際專案中乙個統計示例sql select r.xqid,r.yf,r.roomid,r.floorid,r....

C 的顯式數值轉換

顯式數值轉換是指當不存在相應的隱式轉換時,從一種數字型別到另一種數字型別的轉換。包括 從sbyte到byte,ushort,uint,ulong,或char。從byte到sbyte或char。從short到sbyte,byte,ushort,uint,ulong,或char。從ushort到sbyt...

oracle 中數值的計算

運算子 含義 加 加法 加 字串相加 減 減法 乘 乘法 除 除法 mod 模 返回乙個除法的整數餘數 例如,12 5 2,這是因為 12 除以 5,餘數為 2 示例 select5 6 5 nullfromdual select5 6fromdual select5 6fromdual selec...