%let a=2;
data teemp;
a=1;output;
a=2;output;
run;
option symbolgen;
%macro h;
data temp2l;
set teemp;
if a=&a then do;
b='Y' ; end;
else do;
b='N';
end;
run;
%mend;
%h;
%let a=2;
data teemp;
a=1;output;
a=2;output;
run;
%macro h;
data temp2l;
set teemp;
%if &a=2 %then %do;
b=1 ; %end;
%else %do;
b=2;
%end;
run;
%mend;
%h;
%let a=2;
data teemp;
a=1;output;
a=2;output;
run;
option symbolgen;
%macro h;
data temp2l;
set teemp;
%if a=&a %then %do;
b='Y' ; %end;
%else %do;
b='N';
%end;
run;
%mend;
%h;
可以看到三段代码 if的是可以解析成功,结果也是b=Y和N 两个值,如果是%if,然后&在等号左边,也可以解析成功,结果也对,但是%if,然后&在等号右边时,不知道为什么结果却是b=L两个N,虽然option symbolgen 的结果是对的,但是dataset还是有问题,求大神解答