indexw
の何か問題がありますか? proc sql
とindexw
を使用すると、かなり簡単な解決策が得られます。
サンプルデータ:
data have_messy;
length messy $100;
messy = 'this is a city name: brisbane' ; output;
messy = 'this is a city name: sydney' ; output;
messy = 'this is a city name: melbourne'; output;
run;
data have_city;
length city $20;
city = 'sydney' ; output;
city = 'brisbane'; output;
run;
例クエリ:
proc sql noprint;
create table want as
select a.*,
b.city
from have_messy a
left join have_city b on indexw(a.messy, b.city)
;
quit;
結果:
messy city
=============================== =========
this is a city name: sydney sydney
this is a city name: brisbane brisbane
this is a city name: melbourne
は注意してください - 複数の場合は、上記のクエリは、テーブルAの行ごとに複数の結果を返すことができます都市名が見つかりました。私はあなたの要件に応じて重複した行を処理するためのフォローアップステップを実行することをお勧めします。
何も間違っていません!ちょうど私が参加するには、その機能を使用することができないことを知っている...多くの今日学んだ。ありがとう! – VR6