使用 PostgreSQL 选择最后一个空格之后的所有内容

use*_*748 -1 postgresql

我正在使用 PostgreSQL 9.5 处理地址数据库,并尝试创建一个选择语句,其中只返回街道名称而不返回类型。因此,如果我有一个记录显示:“Golf Course Rd”,我只想返回:“Golf Course”,或者如果记录是“Bentwood Rd”,我只想返回“Bentwood”。

关于如何解决这个问题的任何建议?

Eva*_*oll 7

这是一个问题地址规范化和解析。基本上,您所谈论的内容是通过地名词典(地理规则集)处理的。有两种方法可以做到这一点,

  1. address_standardizer 来自 PostGIS 项目,如果您只使用美国地址,当然更好。
  2. pgsql-postal 可能是国际地址的更好方法。

我将显示地址的地址标准化版本,

Chicken Ranch
10511 Homestead Rd
Pahrump, NV 89061
Run Code Online (Sandbox Code Playgroud)

使用standardize_addressfrom address_standardizer,返回复合类型stdaddr

SELECT * FROM standardize_address('us_lex',
   'us_gaz', 'us_rules', '10511 Homestead Rd, Pahrump, NV 89061');
 building | house_num | predir | qual | pretype |   name    | suftype | sufdir | ruralroute | extra |  city   | state  | country | postcode | box | unit 
----------+-----------+--------+------+---------+-----------+---------+--------+------------+-------+---------+--------+---------+----------+-----+------
          | 10511     |        |      |         | HOMESTEAD | ROAD    |        |            |       | PAHRUMP | NEVADA | USA     | 89061    |     | 
(1 row)
Run Code Online (Sandbox Code Playgroud)

所以你可以看到,ROAD被拉出来了suftype

基于这个 q/a