当表中存在列时,我不太清楚如何返回TRUE
值(注意-TRUE
值可以是我可以在下游评估为{{1}的任何值})
示例-修改星号之间的代码
TRUE
答案 0 :(得分:3)
如果要创建“函数”样式的宏,它将无法生成任何实际的SAS代码。它只能包含宏语句。
您可以使用%sysfunc()宏函数以宏代码调用SAS函数,例如OPEN()和VARNUM()。
%macro varexist(ds,var);
%local dsid ;
%let dsid = %sysfunc(open(&ds));
%if (&dsid) %then %sysfunc(varnum(&dsid,&var));
%else 0 ;
%let dsid = %sysfunc(close(&dsid));
%mend varexist;
有关完整的宏定义以及注释和其他功能,请参见此链接。 https://github.com/sasutils/macros/blob/master/varexist.sas