我在c#中开发一个Web应用程序。网络标准化街道地址。我现在需要做的是以下内容: 在数据库sql server 2005中,我有3个表:
1. - Street address that need split, which contains hundreds of addresses
like this: | streetType stretName number other | all in a same
field.
2. - All street names of the country, separated by city.
3. - All street types, example: avenue, street, road, etc.
我需要得到的分工结果是:
street type | stret name | number | other
使用sql server,ssis或c#。我如何得到这个结果?
在sql server中: 表1(in)街道地址到标准化字段:
表2(out)在字段中分割的归一化地址
这是一个例子
这是excel中的一个例子。它由3张纸组成:
1. Table address to normalize: Addresses are stored in sql server 2005
I need to normalize.
2. Table street name by city They are all street names in the country, separated by city. With this normalized direction.
3. - Table street types These are the types of existing street.
表格包含样本记录。 我只需要分割字段,因为我已经可以规范化了 这是一个有记录的例子 https://skydrive.live.com/redir.aspx?resid=182141CD87872379!1701 谢谢!
答案 0 :(得分:0)
您有多种方法可以尝试解析地址:
自定义T-SQL命令:现在您可以使用代码执行此操作。在CASE语句中包含很多CHARINDEX,PATINDEX和SUBSTRING命令。缺点是您可能无法正确识别所有模式并可能引入错误。此外,如果您有全局地址,那么可能存在许多不同的地址模式,您可能会犯很多错误。
CozyRoc Address Parse:如果您只解析美国地址,那么这是一个很好的解决方案。好处是你不必编写解析代码。缺点是这需要花钱,而且仅适用于美国地址。我自己使用过这个产品,所以我可以说它适用于我的目的。
其他第三方地址解析器:除了CozyRoc之外,还有许多其他地址解析器。我没有使用它们中的任何一种,但我相信它们很多都是好的或更好的。