BookmarkSubscribeRSS Feed
mgorripati
Obsidian | Level 7

This may be simple or may not be simple .

 

%let ID=1000 ; 

 

PROC SQL;

SELECT * FROM  TABLE WHERE FORMULARY_ID = INPUT(&ID. ,8.);

QUIT;

 

the conversion is not working. 

 

in the TABLE  the FORMULARY_ID is a Number  , how can i  convert Macro variable to number ?

 

any help would be highly appreciated.

 

Thanks,

M

3 REPLIES 3
sh0e
Obsidian | Level 7

The INPUT function is expecting a string. So, try this:

 

%let ID=1000 ; 
 
PROC SQL;
SELECT * FROM  TABLE WHERE FORMULARY_ID = INPUT("&ID". ,8.);
QUIT;

Of course, you don't need to do that. This should work as well.

%let ID=1000 ; 
 
PROC SQL;
SELECT * FROM  TABLE WHERE FORMULARY_ID = &ID.;
QUIT;

HTH

mgorripati
Obsidian | Level 7

Thanks HTH,

 

INPUT("&ID".,8.) has worked.

 

Astounding
PROC Star

When a macro variable gets passed to a SAS program, it is up to the SAS program to determine whether the value is character or numeric.  You could simply use:

 

where formulary_id=&id.;

SAS Innovate 2025: Register Now

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!

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 3 replies
  • 28989 views
  • 1 like
  • 3 in conversation