想把macro variable运用到SQL中,
发现还是有一些问题。
当直接赋值的时候
%let cond1=%str(name like '%J%');
proc sql;
create table test1 as
select *
from sashelp.class
where &cond1;
;
quit;
这样的话,程序可以运行。
当用另外一种繁琐的方法写macro variable的时候,却发现不太可行。
%let c1=J;
%let c2=%str(%')%nrbquote(%)%trim(&c1)%nrbquote(%)%str(%');
%let cond2=%str(name like &c2);
%put &cond2;
这个时候发现cond2 put出来的值是和cond1一样的,但是放到sql中的时候就发现错误
proc sql;
create table test1 as
select *
from sashelp.class
where &cond2;
;
quit;
虽然cond2也进行了解释,但是&cond2本身还是保留在SQL中,我一时之间也不知道怎么解决了,所以想向大家请教一下,怎样用写cond2的方法,让SQL可以顺利运行。