从SSIS地址中提取城市,省,国家等

时间:2013-03-15 10:13:24

标签: ssis substring extract

我正在做ETL,想要从1000个地址中提取城市,省份。我在SSIS中尝试了SUBSTRING( «character_expression», «start», «length» )转换,但由于我不知道每个地址,子字符串的起点和每个所需子字符串的长度是什么,所以无法得到结果。

以下是我想要“M.D.A. ROAD”,“MULTAN”等的例子。

PAKISTAN COTTON GINNERS' ASSOCIATION PCGA HOUSE, M.D.A. ROAD, MULTAN
PAKISTAN CROP PROTECTION ASSOCIATION 2-A, INDUSTRIAL ESTATE ROOMY COTTON FACTORY, MULTAN
PAKISTAN AGRICULTURE & DAIRY FARMERS ASSOCIATION 16-C, PEOPLES COLONY, FAISALABAD
THE FAISALABAD CHAMBER OF COMMERCE & INDUSTRY FCCI COMPLEX, EAST, CANAL ROAD, FAISALABAD

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以使用两种策略,具体取决于地址结构是否规则

  1. 使用,个字符的位置将地址分解为组件
  2. 使用已知街道和省份的查找表在地址
  3. 中标识它们

    选项1是最简单的 - 但依赖于地址格式是一致的:即所有组件由,分隔,省总是最后一个组件,城市总是倒数第二。

    您可以使用TOKEN功能按,

    分解地址

    对于省(最后一个组成部分),它将类似于:

    TRIM(TOKEN([Address], ",", TOKENCOUNT([Address], ",")))
    

    对于城市(第二个最后一个组成部分),它将是:

    TRIM(TOKEN([Address], ",", TOKENCOUNT([Address], ",") - 1))