C# 如何将地址字段拆分为街道类型、街道名称、编号等?

C# 如何将地址字段拆分为街道类型、街道名称、编号等?,c#,.net,sql,sql-server,ssis,C#,.net,Sql,Sql Server,Ssis,我正在用c#开发一个web应用程序。Net标准化街道地址。我现在需要做的是: 在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

我正在用c#开发一个web应用程序。Net标准化街道地址。我现在需要做的是: 在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#。Net如何才能得到这个结果

在sql server中: 表1(in)要规范化的街道地址-字段:

  • id(内部审核)
  • 字段中的街道地址(varchar)
表2(out)字段中的标准化地址拆分

  • 街道类型(varchar)(例如:大道、道路、街道等)
  • 街道名称(varchar)
  • 街道号码
  • 其他
这里是一个例子

下面是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.
这些表格有样本记录。 我只需要拆分字段,因为我已经可以正常化了 这是一个有记录的例子
谢谢

您有几个选项可以尝试解析地址:

  • 自定义T-SQL命令:好处是您现在可以用代码实现这一点。需要将大量CHARINDEX、PATINDEX和SUBSTRING命令包装在CASE语句中。缺点是您可能无法正确识别所有模式,并且可能会引入错误。此外,如果您有全局地址,那么可能有许多不同的地址模式,并且您可能会犯许多错误

  • 对于SSI:如果您只解析美国地址,那么这是一个很好的解决方案。好处是您不必编写解析代码。缺点是这需要花钱,而且只适用于美国地址。我自己也用过这个产品,所以我可以说它对我的目的很有效

  • 其他第三方地址解析器:除了CozyRoc之外,还有许多其他地址解析器。我没有使用过任何一种,但我确信它们中有许多同样好或更好


  • 相同的示例输入和预期输出?有什么问题w/
    streetType StrateName number other“.Split(“”)
    ?我要求提供示例,但您添加了表结构。示例意味着显示数据库中的一个条目或类似条目。以及您期望的输出。我强烈建议您获得地址标准化服务。每个国家都有自己的规则来规范/清理地址。我询问示例的原因可能有所不同可以使用consisteny``char作为分隔符等。如果没有任何东西是consistent,我们就不能分割数据。因此提供3或4个不同的输入会更好。我想我使用了第一个选项。你会有一些例子吗?考虑到我有所有的街道名称和各种街道?