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.
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.
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.
It worked. Thank you for the quick response!
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
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.
Ready to level-up your skills? Choose your own adventure.