【发布时间】:2017-07-31 15:53:21
【问题描述】:
我使用的是 PostgreSQL 9.5.1
我有一个地址字段,我试图在其中提取街道类型(AVE、RD、ST 等)。其中一些格式如下:5th AVE N 或 PEE DEE RD N
我在 PostgreSQL 中看到了一些方法来根据空格从左侧计算段数,即 split_part(name, ' ', 3),但我似乎找不到任何内置函数或正则表达式示例,我可以从中计算字符对。
我的前进思路是这样的:
select case when regexp_replace(name, '^.* ', '') = 'N'
then *grab the second to last group of string values*
end as type;
【问题讨论】:
-
这保证在教室外的任何地方都失败。邮政地址不如女性的衣服尺码统一。您应该使用地址验证服务返回您有兴趣分离的组件中的地址,而不是试图让数据库自己完成。
-
考虑您的一些客户也可能居住在其他国家/地区。
-
这个数据集中只有大约26k条记录,所以我很有信心如果我能做到这一点,那么它就会解决问题。
-
这只是一个国家的一个县。
-
@BaconBits 你会推荐什么地址验证服务?
标签: sql regex database string postgresql