当前位置:首页 > 数据库 > 正文

ORACLE 判断是否为数字类型

2024-03-31 数据库

接到一个需求要判断一个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

 

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/SQL/13791.html