SAS Programming

DATA Step, Macro, Functions and more
BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
kc_sas
Fluorite | Level 6

I am trying to use proc sql select into to create some macro variables as follows.

 

%macro sql(var);

proc sql noprint;

select A into: &var. separated by ' ' from in_ds;

quit;

%mend;

%sql(B);

%sql(C);

......

 

Seems it is not working, tried "&var.", didn't work either. Just wonder how to fix this, thanks.

1 ACCEPTED SOLUTION

Accepted Solutions
SASKiwi
PROC Star

Unless you use a %GLOBAL statement your macro variables will only be defined within your macro and not available outside of it. Try this:

%macro sql(var);
%global &var.;

proc sql noprint;
select A into: &var. separated by ' ' from in_ds;
quit;
%mend;

%sql(B);
%sql(C);

View solution in original post

2 REPLIES 2
SASKiwi
PROC Star

Unless you use a %GLOBAL statement your macro variables will only be defined within your macro and not available outside of it. Try this:

%macro sql(var);
%global &var.;

proc sql noprint;
select A into: &var. separated by ' ' from in_ds;
quit;
%mend;

%sql(B);
%sql(C);
kc_sas
Fluorite | Level 6
it works, thanks a lot!

sas-innovate-white.png

Special offer for SAS Communities members

Save $250 on SAS Innovate and get a free advance copy of the new SAS For Dummies book! Use the code "SASforDummies" to register. Don't miss out, May 6-9, in Orlando, Florida.

 

View the full agenda.

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
  • 2 replies
  • 6213 views
  • 2 likes
  • 2 in conversation