Postgresql只选择列中的字母

时间:2014-11-22 16:36:26

标签: sql postgresql split

所以我有这个包含街道地址和门牌号的栏目,它们都保存在同一栏中。

例如:Boulevard 123

现在我想将这些字母与数字分开,所以我通过一个选择语句分别得到“Boulevard”和“123”。

如何使用reg表达式执行此操作?

提前致谢

2 个答案:

答案 0 :(得分:1)

以下对我有用。

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

答案 1 :(得分: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