%macro car_type(ty=);
proc sql;
create table tmp as
select *
from cars
where upcase(type_new) like "%&ty.%"
;quit;
%mend;
The part highlighted in red triggers an error. How to get around this? Please help. Thanks
Separate the parts, so no macro resolution is tried:
%macro car_type(ty=);
proc sql;
create table tmp as
select *
from sashelp.cars
where upcase(type) like "%"!!"&ty."!!"%"
;
quit;
%mend;
%car_type(ty=SUV)
Wrap the % in the %Nrstr Macro Quoting Function
Thanks for the replying. I tried but empty data is generated.
Would be very helpful if you can show the exact syntax.
This is how I have written based on your suggestion,
where upcase(type_new) like "%nrstr(% &ty.%)"
Separate the parts, so no macro resolution is tried:
%macro car_type(ty=);
proc sql;
create table tmp as
select *
from sashelp.cars
where upcase(type) like "%"!!"&ty."!!"%"
;
quit;
%mend;
%car_type(ty=SUV)
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.