5

2つのテーブルのアドレスを比較し、アドレスが一致する場合はIDを取得する必要があります。各テーブルには、Houseno、street、stateの3つの列があります。アドレスは、どちらのテーブルでも標準形式ではありません。約あります。50,000行、スキャンする必要があります

いくつかの場所でそのアベニューアベニューアベニュー。Str Street、ST。レーンLn。PLCirCIRCLEを配置します。ドットまたはコンマまたはスペース、ハイフンとの任意の組み合わせ。3つすべてを組み合わせることを考えていました。たとえば、SQLまたはPLSQLでそれを行うための最良の方法は何でしょうか。

表1

     HNO         STR          State
     -----       -----         ----- 
      12        6th Ave         NY
      10        3rd Aven        SD
      12-11     Fouth St        NJ                         
      11        sixth Lane      NY
      A23       Main Parkway    NY
      A-21      124 th Str.     VA

表2

      id   HNO         STR          state
     --    -----       -----         ----- 
     1      12        6 Ave.         NY
     13     10        3 Avenue       SD
     15     1121      Fouth Street   NJ                         
     33     23        9th Lane       NY
     24     X23       Main Cir.      NY
     34     A1       124th Street    VA
4

4 に答える 4

1

あなたが望むものを達成するための簡単な方法はありません。これを行うことができる高価なソフトウェア(「アドレス標準化ソフトウェア」のグーグル)がありますが、100%自動であることはめったにありません。

このタイプのソフトウェアが行うことは、データを取得し、複雑なヒューリスティックを使用して「公式」アドレスを見つけ出し、それを返すことです (結果が正しいという確信がある場合もあれば、信頼度でソートされた結果のリストがある場合もあります)。

ごく一部のデータについては、ソフトウェアが機能しないため、自分で修正する必要があります。

于 2013-03-05T15:44:17.963 に答える
1

アプリケーションの 1 つでこれを行った方法は、サード パーティの住所正規化 API (例: Pitney Bowes) を使用し、各住所を正規化し (住所は番地、市区町村、都道府県、郵便番号の組み合わせ)、T-sql を作成することでした。比較するアドレスについても同じことを行い、2 つのハッシュを比較し、それらが一致する場合は一致します

于 2016-02-11T03:04:50.133 に答える
0

家番号と都市=で、最初にグループを作成する場所にカーソルを作成できます。

ループでは、chr(32)を考慮してinstresubstrで行を区切ることができます。

その後、あなたはあなたが数6 = 6番目、他の場合は通り=strを持っている部分文字列と対峙することを検討することを試みることができます。

幸運を!

于 2013-03-05T16:17:08.143 に答える