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




被折叠的 条评论
为什么被折叠?



