- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
It worked. Thank you for the quick response!