找回密码
 注册
查看: 3923|回复: 0

跟crackman读SAS程序(44)--SQL里面嵌入宏块

[复制链接]
发表于 2010-8-31 15:04:32 | 显示全部楼层 |阅读模式
%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;

注意每一个细节,包括标点符号。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-21 18:44 , Processed in 0.020909 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表