2016-07-05 19 views
0

私のデータは、私が抽出したい数は5で始まり、常に10桁の長さ、この文字列から特定の番号を抽出する方法

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 

のように見えるかもしれません。

この番号を抽出するにはどうすればよいでしょうか?

最高が思い付くことができは

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

であるが、これは数があなたの条件に一致する最大1つの番号を持っていると仮定すると

答えて

2

を5で始まるまたは10桁の長さをチェックしません次の行を試すことができます:

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

関連する問題