DATA Step, Macro, Functions and more

Turn macro variable into a number

Accepted Solution Solved
Reply
Contributor
Posts: 46
Accepted Solution

Turn macro variable into a number

 

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?


Accepted Solutions
Solution
‎09-07-2016 07:45 AM
Super User
Posts: 19,870

Re: Turn macro variable into a number

Posted in reply to sleretrano

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? 

View solution in original post


All Replies
Solution
‎09-07-2016 07:45 AM
Super User
Posts: 19,870

Re: Turn macro variable into a number

Posted in reply to sleretrano

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? 

Contributor
Posts: 46

Re: Turn macro variable into a number

It did work, thanks. I hadn't thought of trying the most simple thing.
☑ This topic is solved.

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

Discussion stats
  • 2 replies
  • 200 views
  • 0 likes
  • 2 in conversation