【问题标题】:How to split a street address in SQL Server Management Studio如何在 SQL Server Management Studio 中拆分街道地址
【发布时间】:2020-09-14 22:56:32
【问题描述】:

我有一列包含街道地址。以下是该街道地址的一些示例。

问题是:如何将其拆分为 str_numberstr_prefix(可能存在也可能不存在)、Str_Name(可能是一个或多个单词)、str_typestr_suffix(可能存在也可能不存在)。

我不确定这在 SQL 中是否可行,有些值不存在,但我想我会检查一下。非常感谢您的帮助。

  • 123 N Main ST E
  • 456 Bear Creek AVE W
  • 789 N 玫瑰 LN
  • 234 E Deer Run Ln

【问题讨论】:

  • 您好 SDR,我建议您查看help center 并选择tour,这将告诉您如何提问。您需要提供有关您自己尝试完成任务的信息、您期望看到的结果等信息。

标签: sql sql-server tsql split


【解决方案1】:

您无法可靠地做到这一点,因为地址的格式、缩写等方式有太多变化。请参阅Falsehoods programmers believe about addresses

您最好编写/找到一个将每个地址提交给服务 (API) 的应用程序,该服务可以查找已知地址数据库并以结构化格式返回组成组件,然后插入“已清理”将数据放入数据库中的适当字段。

【讨论】:

  • 我的第一份工作是在这样的系统上工作。您可以[相当]可靠地做到这一点,但它需要大量启发式方法,以及了解街道地址外观的区域差异。例如,西南地区的街道地址可能以西班牙/墨西哥风格记录:C. Francisco I. Madero No. 115,门牌号在​​后面。即使使用“标准”美国街道地址格式,您也可能拥有123 E Main St123 Main St E(并且每个都可能在同一个城镇共存)。最好不要尝试。或者使用商业服务。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-28
  • 1970-01-01
  • 2019-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多