2016-07-05 73 views
0

我的数据可能看起来像这样如何从一个字符串中提取特定数量

Goods Receipt required for document 5105250265 from Vendor 
Goods Receipt(s) have been fully taken for document 5105295587 
Goods Receipt required for document 5105285525 from Vendor 
Please process Vendor invoice from CARDIFF COUNTY COUNC, reference 1801314625 
Goods Receipt required for document 5105302265 from Vendor 

我想提取的号码以5,总是10位。

提取此数字的最佳方法是什么?

最好能想出是

select regexp_replace(column, '[A-Za-z]') from table 

但这并不检查数量与5个或10位数

回答

2

假设你已经开始至多一个数量符合标准您可以尝试以下操作:

with test (text) as 
(
select 'Goods Receipt required for document 5105250265 from Vendor' from dual union all 
select 'Goods Receipt(s) have been fully taken for document 5105295587' from dual union all 
select 'Goods Receipt required for document 5105285525 from Vendor' from dual union all 
select 'Please process Vendor invoice from CARDIFF COUNTY COUNC, reference 1801314625' from dual union all 
select 'Goods Receipt required for document 5105302265 from Vendor' from dual 
) 
select regexp_substr(text, '5[0-9]{9}') 
from test 
+0

完美!非常感谢你。 – totalitarian

相关问题