oracle判断是否纯数字

该博客介绍了两种在SQL中使用正则表达式的方法来检查数据是否为数字格式。方法一是通过regexp_like函数,匹配浮点型、整数型和科学计数法的数字。方法二是利用translate函数结合decode进行判断。示例代码提供了具体的正则表达式和使用场景,适用于Oracle 10g及更高版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法一,用正则的方法:

使用 regexp_like

例:

select * from tablename where

regexp_like(trim(data),'^([\-]?[0-9]+\.[0-9]+)$|^([\-]?[0-9])+$|^([\-]?[0-9]{1}\.[0-9]+E[\-]?[0-9])+$')

这个正则分三部分:

1、^([-]?[0-9]+.[0-9]+)$

浮点型,包括带小数点的情况

2、^([-]?[0-9])+$

整数型

3、^([-]?[0-9]{1}.[0-9]+E[-]?[0-9])+$

科学计数法表示的数字

以上三部分均包括了负数的情况

注:regexp_like适用于oracle 10g及其之后的版本,之前的不适用。

方法二,用正则的方法:

使用translate方法

例:

select data,decode(trim(translate(trim(cdata),‘0123456789.’,’ ‘)),’’,‘is number’,‘not number’)

from tablename
转载:https://blog.youkuaiyun.com/weixin_42297675/article/details/116318889

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值