当我运行下面的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宏在其他编程语言中与方法类似——它们在被调用之前不会做任何事情,运行宏定义本身只是编译宏并准备好使用。