SAS Programming

DATA Step, Macro, Functions and more
BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Tecla1
Quartz | Level 8

Good morning to all and many thnks for your kindly help !!!

I need to do a Proc Sql with two DB that has the same named columns and I need to keep all them, there is a way to rename automatically the second columns DB?

 

Many tnks

Tecla

1 ACCEPTED SOLUTION

Accepted Solutions
Kurt_Bremser
Super User

AFAIK, no.

If there is a considerable number of columns, you can create a macro variable containing the code for all columns that you want to do this for:

data class1;
set sashelp.class;
run;

data class2;
set sashelp.class;
run;

data _null_;
set sashelp.vcolumn end=done;
where libname = "WORK" and memname = "CLASS2" and upcase(name) ne "NAME";
/* the last condition excludes the key variable on which the join will be made */
length statement $1000;
retain statement;
statement = catx(",",statement,"b."!!name!!" as b_"!!name);
if done then call symputx("statement",statement);
run;

proc sql;
create table want as
  select
    a.*,
    &statement.
  from class1 a, class2 b
  where a.name = b.name
;
quit;

View solution in original post

3 REPLIES 3
Kurt_Bremser
Super User

AFAIK, no.

If there is a considerable number of columns, you can create a macro variable containing the code for all columns that you want to do this for:

data class1;
set sashelp.class;
run;

data class2;
set sashelp.class;
run;

data _null_;
set sashelp.vcolumn end=done;
where libname = "WORK" and memname = "CLASS2" and upcase(name) ne "NAME";
/* the last condition excludes the key variable on which the join will be made */
length statement $1000;
retain statement;
statement = catx(",",statement,"b."!!name!!" as b_"!!name);
if done then call symputx("statement",statement);
run;

proc sql;
create table want as
  select
    a.*,
    &statement.
  from class1 a, class2 b
  where a.name = b.name
;
quit;
Tecla1
Quartz | Level 8
Tnks for your kindly replay.

Tecla

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

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
  • 557 views
  • 0 likes
  • 2 in conversation