首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >忽略REGEXP_LIKE中的所有数字

忽略REGEXP_LIKE中的所有数字
EN

Stack Overflow用户
提问于 2017-08-01 21:59:19
回答 1查看 134关注 0票数 0

我正在尝试查找除数值之外的所有记录,其中包括alphabets charachters。在运行以下查询时,我需要此信息来确定我将存储从SUBSTR(COLUMN1,8,4)获得的数据的数据类型:

代码语言:javascript
运行
复制
select SUBSTR(COLUMN1,8,4)
from tmp_table
where REGEXP_LIKE (SUBSTR(COLUMN1,8,4),'[^0-9\x]+$');

我得到的查询结果如下:

代码语言:javascript
运行
复制
918 
922S
944 
950N
953 
958S
974 
977A
994A
995 

我还添加了显示输入数据的查询,该查询使用的是:

代码语言:javascript
运行
复制
select column1
from tmp_xsttable
where REGEXP_LIKE (SUBSTR(COLUMN1,24,4),'[^0-9\x]+$');

我得到的数据是:

代码语言:javascript
运行
复制
AHGLXST912 200701010000912 L000000000000000000NC0000  CA20070216 10     
AHGLXST917 200501020000917 L000000000020071231NC000001CC20090805 10     
AHGLXST918 200501020000918 L000000000020071231NC000001CC20090805 10     
AHGLXST920A200501020000920AL000000000000000000NC000001CA20050130 64     
AHGLXST921 193501010000921 L000000000000000000NH0000  DA20040901 30     
AHGLXST921D193501010000921DL000000000000000000NH0000  DA20040901 30     
AHGLXST922A192501010000922AL000000000000000000NC0000  CA20050311 64     
AHGLXST922G192501010000922GL000000000020081231NC0000  CC20090805 44     
AHGLXST922N200501020000922NL000000000000000000NC0000  CA20050517 74     
AHGLXST922S193501010000922SL000000000000000000NH0000  CA20040901 10  

以下是tmp_tableColumn1中的一些示例数据集

代码语言:javascript
运行
复制
AHGLXST01362007061700530136L000000057000000000YH0005  RA20070619110     
AHGLXST01362011092500540136L000000057000000000YH0005  RA20110927110     
AHGLXST01362014090700950136L000000057000000000YC0009  RA20140909110     
AHGLXST01371973112800670137L000000026000000000YH0008  RC2004052011011   
AHGLXST01372006010100640137L000000026020061005YC0008  RC2006102511011   
AHGLXST01391988040600510139L000000080500000000YH0006  RC2004052021022   
AHGLXST01392007061700550139L000000080520101113YC0005  RC20101214210     
AHGLXST01401997071300560140L000000047400000000YH0006  RC2004052011011   
AHGLXST01402006042900560140L000000047400000000YH0008  RA20060426110     
AHGLXST01402007061700750140L000000047400000000YH0007  RA20070619110    

我试图忽略那些数字的记录,但我得到了这些3位数的结果,以及有字母和字符的记录。如何更改我的REGEXP_LIKE以忽略所有数字?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-01 23:50:06

您在查询中所做的是获取SUBSTR(COLUMN1,8,4)至少包含一个非数字字符的数据。我觉得你想要的更像这样:

代码语言:javascript
运行
复制
SELECT SUBSTR(column1, 8, 4)
  FROM tmp_table
 WHERE NOT REGEXP_LIKE(SUBSTR(column1, 8, 4), '\d');

上面的查询将返回COLUMN1的值不包含从第8位开始的四个字符(即字符8-11)中的数字的所有行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45439979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档