ORACLE 判断是否为数字类型

Posted 迷影遮忆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于ORACLE 判断是否为数字类型的主要内容,如果未能解决你的问题,请参考以下文章

Oracle中判断字段是否为数字

Oracle中如何判断字符串是否全为数字

oracle判断表中的某个字段是否为数字

JavaScript笔试题(js高级代码片段)

java判断数字类型(小数和整数)

SQL查询中,如何判断一个字符串字段的内容的长度