0

我有一个看起来像这样的列

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/右修剪,但结果不是我所期望的。

4

1 回答 1

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)
于 2017-08-09T16:45:37.057 回答