首页 > 数据库 >Oracle判断是否为数字

Oracle判断是否为数字

时间:2023-09-10 10:55:08浏览次数:39  
标签:digit 判断 数字 正则表达式 Oracle REGEXP LIKE

一、判断是否为数字的方法

在Oracle中,常用的判断是否为数字的方法是使用REGEXP_LIKE函数和正则表达式。

SELECT CASE WHEN REGEXP_LIKE('123', '^[[:digit:]]+$') THEN '是数字' ELSE '不是数字' END AS check_result FROM DUAL;

以上代码会返回结果为“是数字”,因为“123”是由数字组成的字符串。

如果判断的是非数字字符串,如“abc”,则返回结果为“不是数字”。

二、判断负数

有时候需要判断负数是否为数字,可以使用以下正则表达式:

SELECT CASE WHEN REGEXP_LIKE('-123', '^(-)*[[:digit:]]+$') THEN '是数字' ELSE '不是数字' END AS check_result FROM DUAL;

以上正则表达式中的“^”表示起始位置,“(-)*”表示负号可有可无,“[[:digit:]]+”表示一个或多个数字。

三、判断小数

如果需要判断小数是否为数字,可以使用以下正则表达式:

SELECT CASE WHEN REGEXP_LIKE('123.45', '^(-)*[[:digit:]]+(\.[[:digit:]]+)*$') THEN '是数字' ELSE '不是数字' END AS check_result FROM DUAL;

以上正则表达式中的“\.”表示小数点,“(\.[[:digit:]]+)*”表示小数部分可有可无。

四、判断科学计数法表示的数字

有时候数字会使用科学计数法表示,如“1.23E+2”,需要使用以下正则表达式:

SELECT CASE WHEN REGEXP_LIKE('1.23E+2', '^(-)*[[:digit:]]+(\.[[:digit:]]+)*([Ee][+-]?[[:digit:]]+)*$') THEN '是数字' ELSE '不是数字' END AS check_result FROM DUAL;

以上正则表达式中的“([Ee][+-]?[[:digit:]]+)*”表示指数可有可无,其中[Ee]表示指数符号,“[+-]?”表示正负号可有可无,“[[:digit:]]+”表示一个或多个数字。

五、判断有效数字

在实际业务中,可能需要判断有效数字(即带有特定格式的数字),如身份证号码、银行卡号等。此时可以根据具体的格式进行判断,以下是判断身份证号码是否为数字的例子:

SELECT CASE WHEN REGEXP_LIKE('11010119800101001X', '^[[:digit:]]{17}([[:digit:]]|X)$') THEN '是数字' ELSE '不是数字' END AS check_result FROM DUAL;

以上正则表达式中的“^[[:digit:]]{17}([[:digit:]]|X)$”表示前17位必须是数字,最后一位可以是数字或大写字母X。

标签:digit,判断,数字,正则表达式,Oracle,REGEXP,LIKE
From: https://www.cnblogs.com/lgx5/p/17690888.html

相关文章

  • Springboot项目中pom.xml配置文件无法解析下载oracl数据库解决办法(Cannot resolve com
    网上说是因Oracle的版权问题,导致maven下载不下来ojdbc各个版本的jar包。就会报错Cannotresolvecom.oracle:ojdbc6:11.2.0.1.0 经过一番百度,找到了一个适用的解决方法,如下操作即可:1.在终端或客户端机器上找到oracle安装驱动目录:例如:E:\myorcl\product\11.2.0\dbhome_1\j......
  • ADQ7WB-2通道,12bit,5GSPS,带宽6.5 GHz的RF数字化仪
    概要更多信息请加weixin-pt890111获取1.针对射频应用进行了优化ADQ7WB是一款RF数字转换器,其模拟输入带宽为6.5GHz。高模拟输入带宽与高采样率相结合,可实现IF/IQ/RF信号的宽带捕获,交流耦合模拟前端针对高线性度进行了优化。ADQ7WB利用TeledyneSPDevices专有的数字性能增强技术AD......
  • ADQ7DC-10GSPS, 14bit数字化仪
    概要1.高分辨率和高采样率的独特结合ADQ7DC具有14bit和10GSPS采样率,提高了高采样率应用中的分辨率,超出了以前的范围。这种性能提升有效地帮助我们的客户克服了性能折衷,并在许多应用中取得了重大进步。ADQ7DC可以单通道或双通道模式工作,分别具有10或5GSPS采样率。2.多功能模拟前......
  • 达梦数据库教程:DM8数据迁移工具使用教程(oracle迁移至DM8)
    DM数据迁移工具DM数据迁移工具DMDTS提供了主流大型数据库迁移到DM、DM到DM、文件迁移到DM以及DM迁移到文件等功能。得益于DM数据库对目前主流大型关系型数据库系统有着业界领先的兼容性,在存储层面、语法层面、接口层面和它们保持高度兼容,借助于DM图形界面且采用向......
  • 医院信息化、数字医学影像、DICOM、PACS
    PACS系统适合卫生院、民营医院、二甲或以下公立医院的放射科、超声科使用。功能强大且简洁,性能优异,具备MPR(三维重建)、VR(容积重建)、胶片打印功能,能够快速部署。支持DR、CT、磁共振提供DICOM服务,支持临床医生工作站提供报告和影像浏览服务,系统支持与HIS、体检融合,从对方服务器获取......
  • Python学习笔记-Python判断语句
    布尔类型和比较运算符布尔类型进行判断,只有2个结果:是否程序中,如何描述:是或否?使用:布尔类型。Python中常用的6种值(数据)的类型类型描述说明数字(Number)支持整数(int)浮点数(float)复数(complex)布尔(bool)整数(int),如10、-10浮点数(float),如13.14、-13.14复数(complex),如4+3j,以j结尾表示复数布尔(bool)......
  • hash判断回文串
    hash的计算方法参考《字符串哈希》建立正反两向的字符串哈希数组for(inti=1;i<=n;i++){p[i]=p[i-1]*P;h[i]=h[i-1]*P+str[i];//}for(inti=n;i>=1;i--){L[i]=L[i+1]*P+str[i];//}如果某一段字符串正向的hash值......
  • Navicat连接oracle时,提示oracle library is not loaded
    一、背景本机配置:win764位本机同时安装了oracle服务器端和客户端服务器端:11gR2; 客户端:oracle10g32位(由于项目需要,必须安装此客户端) 二、报错描述先安装的11gR2,用Navicat连接正常,后面再安装10g32位的客户端后,连接报错:oraclelibraryisnotloaded 三、报错原因因为......
  • 制造业数字化转型顶层设计业务架构和应用架构规划方法
     引言   当前制造业产业转型升级已成为国家战略,智能制造的理念也在行业中快速推行和应用。在当下制造业数字化转型的浪潮中,数字化顶层规划以企业架构方法论为依托,围绕数字化转型规划战略,帮助企业识别企业在转型过程中应该具备的核心业务能力,构建企业数字化运营能力总体蓝图,......
  • Python给你一个字符串,你怎么判断是不是ipv4地址?手写这段代码,并写出测试用例【杭州多测
    ipv4地址的格式:(1~255).(0 ~255).(0 ~255).(0 ~255)1.正则表达式importredefcheck_ip(one_str):compile_ip=re.compile('^(([1-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$')ifcompile_ip.match(one_str......