2014-11-22 78 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