码迷,mamicode.com
首页 > 数据库 > 详细

ORACLE 判断是否为数字类型

时间:2019-12-24 15:16:56      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:替换   exp   oracl   一个   translate   代码   strong   ber   col   

接到一个需求要判断一个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 判断是否为数字类型

标签:替换   exp   oracl   一个   translate   代码   strong   ber   col   

原文地址:https://www.cnblogs.com/cykfory/p/12091521.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!