BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
ZRick
Obsidian | Level 7

why this marco doesn't work:

%macro t(var=);

proc sql;

select name into: name from sashelp.class where name='&var.';

quit;

%put _user_;

%mend;

%t(var=Henry);


what is wrong with my single quotation mark?



1 ACCEPTED SOLUTION

Accepted Solutions
Tom
Super User Tom
Super User

Macro language references are not expanded when enclosed in single quote marks. Use double quote character instead.

name = "&var"

View solution in original post

5 REPLIES 5
Tom
Super User Tom
Super User

Macro language references are not expanded when enclosed in single quote marks. Use double quote character instead.

name = "&var"

ZRick
Obsidian | Level 7

is this the only main difference when choosing to use single or double quotation?

I always thought single/double quotation can be used interchangeably.

Haikuo
Onyx | Level 15

Good topic for a SUG paper. Their differences seem to be more than just that. Especially when you refer Windows path ( X command, etc) or using SQL pass-thru ( well, to be fair, that is NOT a difference within SAS).

Haikuo

ZRick
Obsidian | Level 7

Is it safe to say that double quote is more generic than single quote in passing macro variables?

CFC_SAS_Communities_400x225.jpg

Call for content now open!

It's your turn to help shape SAS Innovate 2027. Share your expertise and inspire the SAS community.

Submit your proposal →

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
  • 5 replies
  • 3574 views
  • 0 likes
  • 3 in conversation