跟crackman读SAS程序(44)--SQL里面嵌入宏块
%macro test;
data one;
array trx(24);
do i=1 to 1000;
do j=1 to 24;
trx[j]=ranuni(1);
end;
output;
end;
run;
proc sql;
select trx1 %do i=2 %to 24;
,trx&i
%end;
from one;
%mend test;
%test;
在这个程序里面,注意一个细节问题就是,select trx1 %do i=2 %to 24;
,trx&i 。如果把TRX1去掉,不行,出现错误。如果把 trx&i签名的逗号去掉也不行,也会有错误,其实这里面用%do循环产生的是 ,TRX2 ,TRX3...,TRX24,每一个都是包括了逗号的,SELECT选择COLUMN就是这样的。还有这里的SQL没有QUIT语句结尾,大家可以加一个QUIT出现什么样的结果
当然下面这个更简单,直接在SQL SELECT语句中运动宏
proc sql;
select trx1 %macro loop; %do i=2 %to 24; ,trx&i %end;%mend;%loop from one;
quit;
注意每一个细节,包括标点符号。




雷达卡
京公网安备 11010802022788号







