【发布时间】:2018-08-20 18:12:23
【问题描述】:
我正在尝试从数据库中的长字符串中提取城市名称。以下是几个不同位置的数据示例。
"701 MONROE STREET NW RUSSELLVILLE, AL 35653 (34.514971, -87.736372)"
"1825 HOLTVILLE ROAD WETUMPKA, AL 36092 (32.558544, -86.221265)"
我想为城市名称创建一个列。我的想法是把所有的东西都放在逗号的左边和后面的空格的右边。我已经尝试了几种不同的方法来解决这个问题,但我可能会遗漏一些东西。
SELECT left(Location, CHARINDEX(',', location)) as city FROM table
这将返回第一个逗号剩下的所有内容。
"701 MONROE STREET NW RUSSELLVILLE,
"1825 HOLTVILLE ROAD WETUMPKA,
但是现在我想返回逗号左边的所有内容和这个字符串中最后一个空格右边的所有内容,我不知道如何正确提取该信息。任何帮助,将不胜感激。
谢谢, 帕特
【问题讨论】:
-
"701 MONROE STREET NW RUSSELLVILLE, AL 35653 (34.514971, -87.736372)" "1825 HOLTVILLE ROAD WETUMPKA, AL 36092 (32.558544, -86.221265)" 是一个完整的地址
-
“...新泽西州大西洋城”怎么样?
-
这就是规范化如此重要的原因......正如@NathanSkerl 所说明的那样,通常很难逆转。我可能会填写一张包含 ST、RD、ROAD、LN、LANE、NW、SW、NE 等所有可能性的表格......并找到最后一次出现的作为起点。假设它们是必需的,我想它会让你更接近。您可以检查它们是否存在,只需加倍下注。
-
几个月前我遇到了同样的问题。我的解决方案是使用地址清理服务,例如Experian。有太多的变化需要考虑
-
这是一个比看起来更难的问题。多词城市(“纽约市”)呢?还是带有定向第一个单词的城市名称(“北普拉特”)?还是含糊不清的城市名称(“Park City”、“Junction City”)?
标签: sql sql-server