SAS宏条件语句未创建表



当我运行下面的sas代码时,它不会生成表。我做错了什么?谢谢


%macro createData(test=);
%if 2+2 = 4 %then %do;
proc sql;
create table test as 
select
*
from datasets.mydata
;
quit;
%end;
%mend;

只要实际调用宏,代码就会运行良好!

你还需要一行:

%createData(test=1);

(test=1是任意的,因为您不会对&test宏参数执行任何操作,我只是选择了我想要的任何参数(。

SAS宏在其他编程语言中与方法类似——它们在被调用之前不会做任何事情,运行宏定义本身只是编译宏并准备好使用。