我的数据如下
col1
abc1234
abc 1234
12345
abc 1234 123456789
xyz1234567890a
我希望输出的字符串为长度大于等于5个字符的数字,其余所有记录均已过滤。
我已经尝试过REGEXP_SUBSTR(col1, '[0-9]+')
函数,但是没有得到期望的结果
SELECT col1
,REGEXP_SUBSTR(col1, '[0-9]+') as num
FROM table1
WHERE col1 IS NOT NULL
AND LENGTH(num) >5
预期输出如下
num
12345
123456789
1234567890
答案 0 :(得分:1)
您需要告诉RegEx返回至少5个连续数字,目前返回至少1个数字。当然,如果您想要>= 5
,则不应该写> 5
:-)
RegExp_Substr(col1, '[0-9]{5,}')