BookmarkSubscribeRSS Feed
msd83
Calcite | Level 5

Hi all,

Thanks for taking time to help me.

I have two datasets which I want to merge on people's surname.

In one dataset the field contains just the surname but in the other dataset the field contains other words (potentially before or after the surname).

Is there any way to join the two datasets?

E.g. Surname (table 1)        Name (table 2)


          Smith                        Mr.Tom Smith     


I would want to join the records for this example above.


I have tried using proc sql, create table ... with a where clause with the contains function but that did not work.

I have SAS 9.4.

Any help will be much appreciated.

3 REPLIES 3
stat_sas
Ammonite | Level 13

proc sql;

select * from table1,table2

where table2.name contains strip(table1.surname);

quit;

Peter_C
Rhodochrosite | Level 12

stat@sas wrote:

proc sql;

select * from table1,table2

where upcase( table2.surname ) contains upcase( strip(table1.surname) ) ;

quit;

with a little update in case SurName is not reliably in a consistent case

good luck

msd83
Calcite | Level 5

Thank you both for your help, that is great. Smiley Happy

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 3 replies
  • 1564 views
  • 6 likes
  • 3 in conversation