ORACLE 判斷是否為數字類型


接到一個需求要判斷一個varchar2字段的值是否是數字,如果不是數字,就置為null,如果是數字,就使用to_number把它變成num類型。

找到兩種辦法。

方法一:

用trim和translate來判斷,這種方法比較麻煩,代碼如下:

SELECT
    TO_NUMBER(t.ITM_VAL) test
    ,t.ITM_VAL
from EMR.T_REC t where trim(translate(t.ITM_VAL,'0123456789.',' ')) is NOT NULL

方法二:

使用替換方法,把非數字和小數點的字符變為空,然后使用to_number,代碼如下:

SELECT
    TO_NUMBER(REGEXP_REPLACE(t.ITM_VAL,'[^0-9.]','')) test
    ,t.ITM_VAL
from EMR.T_REC t

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM