2014-11-22 36 views
2

所以我有这个列包含街道地址和门牌号码,它们都保存在同一列。Postgresql只从列中选择字母

如:大道123

现在我想,所以我得到“大道”和“123”分别槽SELECT语句的字母与数字分开。

我该怎么做,使用reg表达式?

在此先感谢这样做的

+0

什么应该'大道123 South' – 2014-11-22 17:21:20

+0

@a_horse_with_no_name一个select语句的街道名称和门牌号码低谷另一个SELECT语句 – RandomPerson 2014-11-22 17:25:48

+0

并且怎么样'South'一部分返回?这是第三个因素吗?还是它属于这个数字?或者到第一部分? – 2014-11-22 17:30:10

回答

0

一种方式是通过使用regexp_split_to_array由空间分割值:

SELECT address_arr[1] AS streer_name, address_arr[2] AS street_number 
FROM (SELECT REGEXP_SPLIT_TO_ARRY(address, ' ') AS address_arr 
     FROM my_table) t 
0

的,我下面的工作。

select 
    substring(address from '\d+') as street_number, 
    substring(address from '[a-zA-Z\s]+') as street_name 
from addresses