【发布时间】:2019-09-12 12:54:57
【问题描述】:
我正在尝试遍历一个列表并使用每个列表值来创建一个新表。
为此我编写了一个宏。
%macro loop(STlist);
%let nwords=%sysfunc(countw(&STlist));
%do i=1 %to &nwords;
%put %scan(&STlist, &i);
%LET ST_CD = %scan(&STlist, &i);
%end;
%mend;
%loop(&STATE);
这是我的状态列表:
%LET STATE = AK AL AZ AR CA CO CT DC DE FL GA HI ID IL IN IA KS KY LA ME MD MA MI MN MS MO MT NE NV NH NJ NM NY NC ND OH OK OR PA RI SC SD TN TX UT VT VA WA WV WI WY;
我每次都尝试使用列表中的每个州缩写创建 proc sql 表。
【问题讨论】:
-
如果你想让宏生成 SQL 代码,那么它必须实际包含一些 SQL 代码。
-
只需在第二个 %let 语句之后插入您的 SQL 代码并使用 &ST_CD。无论您需要在哪里使用州代码。
-
这篇文章与您的previous question 有什么实质性不同?请使用所需信息编辑以前的版本,而不是用重复的问题淹没 StackOverflow。