Help using Base SAS procedures

select into a macro variable inside a macro

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 10
Accepted Solution

select into a macro variable inside a macro

Hi,

 

I have a question regarding proc sql select into clause. Here is my code:

 

%macro varinput(data=, selectname= , namelike=);
proc contents data=&data. out=contents(keep=name) noprint;
run;

proc sql noprint;
select name into: &selectname. separated by ' '
from contents
where name like "&namelike.";
quit;

%mend varinput;
%varinput(data=outcome.cvd, selectname=miad , namelike=v_miad);

 

My objective is to extract those variables with name containg v_miad. I want to put these variables into a macro variable named miad. However, it seems that &miad cannot be resolved. Does anyone know how to solve this? Thank you.

 


Accepted Solutions
Solution
‎05-31-2017 05:24 PM
Super User
Posts: 5,069

Re: select into a macro variable inside a macro

When SQL creates a new macro variable, it is always a local variable.  Add this as the first line inside the macro definition:

 

%global &selectname;

 

Then SQL will no longer be creating a new macro variable ... it can re-assign a value to the global variable.

View solution in original post


All Replies
Solution
‎05-31-2017 05:24 PM
Super User
Posts: 5,069

Re: select into a macro variable inside a macro

When SQL creates a new macro variable, it is always a local variable.  Add this as the first line inside the macro definition:

 

%global &selectname;

 

Then SQL will no longer be creating a new macro variable ... it can re-assign a value to the global variable.

Occasional Contributor
Posts: 10

Re: select into a macro variable inside a macro

It worked. Thank you for the quick response!

☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 164 views
  • 1 like
  • 2 in conversation