Hello
I want to use like operator in proc sql.
I want to ask why when I use macro variable then want2 data set cannot find the row??
Data have;
input IP $ 9.;
cards;
033948777
383888388
027441567
;
Run;
proc sql;
create table want1 as
select *
from have
where IP like '%27441567'
;
quit;
%let wanted_IP=27441567;
proc sql;
create table want2 as
select *
from have
where IP like "%&wanted_IP."
;
quit;
The % sign is not interpreted as a text percent sign, it is interpreted as a macro symbol. So macro %27441567 is referenced, but doesn't exist. To force the percent sign to be interpreted as a text percent sign
where IP like "%nrstr(%%)&wanted_IP."
Just split and concatenate the strings:
proc sql;
create table want2 as
select *
from have
where IP like '%' !! "&wanted_IP."
;
quit;
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.