BookmarkSubscribeRSS Feed
Tom
Super User Tom
Super User

You can also just make your own macro to add the single quotes. 

AhmedAl_Attar
Ammonite | Level 13

Try this

%macro temp(val=x);

   %local quotedVal;

   %let quotedVal = %str(%')&val%nrstr(%%%');

   proc sql;

      select * from table1 where col1 like %unquote(&quotedVal); /* %superq(quotedVal) would cause SQL syntax Error! */

   quit;

%mend;

options mprint;

%temp(val=x);

JakobHommelhoff
SAS Employee

I have had the same problem...

Try this...

%macro temp(val=x);

     proc sql;

          select * from table1 where col1 like "%QOUTE(%%)&val.%";

     quit;

%mend;

Ksharp
Super User

That is weird . Your code should be work.

Try:

Code: Program


data table1;
col1='xdw';y1=2;output;
col1='ddw';y1=2;output;
run;


%macro temp(val=x);
proc sql;
select * from table1 where col1 eqt symget('val');
quit;
%mend;

%temp

Xia Keshan

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

What is Bayesian Analysis?

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 18 replies
  • 6052 views
  • 3 likes
  • 8 in conversation