如何在 SQL 中使用宏?(对于每一件事,这是被选中的)
我的意思是这样的:
&VarTable
是一个表,它有两个变量:(例如)Lib
和Table
中的每个观察&VarTable
都是表的名称:Lib.Table
我想为每张桌子做一些事情:
1)存在吗?
2)排序
最后一个条件:每个表(如果存在)都有一个变量&VarField
。
%macro mSortedTable(vLib,vTab,vVar);
%if %sysfunc(exist(&vLib..&vTab)) %then %do;
proc sort data = &vLib..&vTab;
by &vVar;
run;
&vLib..&vTab
%end;
%else %do; "" %end;
%mend mSortedTable;
proc sql noprint;
select %mSortedTable(vLib=Lib,vTab=Table,vVar=&VarField)
into: AccumVar separated by " "
from &VarTable;
quit;
如何用 sql 和宏来做到这一点?