我有一个看起来像这样的列
Column 1
--------------
123 Main Street
P.O. Box 1234
PO Box 4569
P.O Box 4975
P.O. Box 796 Attn: Lease
我如何只提取数字,只有1234,4569,4975,796?
(各种不同的PO强调我不能使用字符分隔符。
我尝试使用左/右和ltrim /右边修剪,但结果不是我所期待的。
答案 0 :(得分:0)
这是一个简单的自包含示例:
create table test (a text);
insert into test values
('123 Main Street'),
('P.O. Box 1234'),
('PO Box 4569'),
('P.O Box 4975'),
('P.O. Box 796 Attn: Lease');
smarlowe=# select coalesce(substring(substring(a from 'P.*O.*[0-9]+') from '[0-9]+'),'NOMATCH') from test;
coalesce
----------
NOMATCH
1234
4569
4975
796
(5 rows)