我有一个看起来像这样的列
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/右修剪,但结果不是我所期望的。
我有一个看起来像这样的列
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/右修剪,但结果不是我所期望的。
这是一个简单的独立示例:
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)