I want to use a macro variable in a WHERE condition in a PROC SQL, but I need to to be evaluated as a number because Var3 below is numeric.
%let horizon=201606:
PROC SQL;
CREATE TABLE CTX AS
SELECT Variables
FROM Table1 T1
LEFT JOIN Table2 T2 ON (T1.Var1=T2.Var1)
WHERE T2.Var3 le %EVAL(put(&Horizon.,6.));
QUIT;
How can I go about this?
Macro variables are text not really char/numeric. They do literal text replacement.
The following will work:
Where t2.var3 LE &horizon;
If it doesn't work you may have a type mismatch and most likely var3 is numeric with a date format?
Macro variables are text not really char/numeric. They do literal text replacement.
The following will work:
Where t2.var3 LE &horizon;
If it doesn't work you may have a type mismatch and most likely var3 is numeric with a date format?
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
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.
Ready to level-up your skills? Choose your own adventure.