Hi, I am struggling with a particular join that I hope has a solution in SAS. I have 2 tables as follows:
Reference table 1:
CityRef:
NewYork
London
Paris
Brussels
Canberra
Raw extracted table 2:
CityRaw:
oshNewYorkd
whatevrLondon
Parisowjshg
Brssuls
I would like the following right join to be returned:
CityRaw | CityRef
oshNewYorkd | NewYork
whatevrLondon | London
Parisowjshg | Paris
Brssuls | -
So I would like to join these two tables together if the key from table 1 can be found within the key from table 2. I hope this makes sense. Perhaps proc sql is the answer? Any help would be greatly appreciated and would save me writing a complex iterative find macro in VBA! I am using EG 9.3.
Rob
data table1;
input CityRef $10.;
datalines;
NewYork
London
Paris
Brussels
Canberra
;
data table2;
input CityRaw $15.;
datalines;
oshNewYorkd
whatevrLondon
Parisowjshg
Brssuls
;
proc sql;
select catx(" | ",a.cityraw,b.cityref) as city
from table2 a left join table1 b
on strip(upcase(cityraw)) contains strip(upcase(cityref));
quit;
data table1;
input CityRef $10.;
datalines;
NewYork
London
Paris
Brussels
Canberra
;
data table2;
input CityRaw $15.;
datalines;
oshNewYorkd
whatevrLondon
Parisowjshg
Brssuls
;
proc sql;
select catx(" | ",a.cityraw,b.cityref) as city
from table2 a left join table1 b
on strip(upcase(cityraw)) contains strip(upcase(cityref));
quit;
Wonderful, thank you!!
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and save with the early bird rate—just $795!
Check out this tutorial series to learn how to build your own steps in SAS Studio.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.