0

私は ETL を行っており、数千の住所から都市、州を抽出したいと考えています。SSIS で変換を試みSUBSTRING( «character_expression», «start», «length» )ましたが、各アドレスで、部分文字列の開始位置と必要な各部分文字列の長さがわからないため、結果を取得できませんでした。

以下は、「MDA 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

前もって感謝します。

4

1 に答える 1

1

アドレス構造が規則的かどうかに応じて、使用できる戦略が 2 つあります。

  1. 文字の位置を使用,して住所を構成要素に分割する
  2. 住所でそれらを識別するために既知の通りと州のルックアップ テーブルを使用します。

オプション 1 は最も単純ですが、住所形式が一貫している必要があります。つまり、すべての構成要素は で区切られています,。都道府県は常に最後の構成要素であり、都市は常に最後から 2 番目の構成要素です。

TOKEN関数を使用して、アドレスを次のように分割します。,

州 (最後のコンポーネント) の場合、次のようになります。

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

都市 (最後から 2 番目のコンポーネント) の場合、次のようになります。

TRIM(TOKEN([Address], ",", TOKENCOUNT([Address], ",") - 1))
于 2013-03-15T10:28:10.970 に答える