动态化 SAS PROC SQL SELECT INTO 宏创建范围
Dynamize range of SAS PROC SQL SELECT INTO macro creation
我想将多个观察值放入一个自己的宏变量中。我会通过在 :obs1 - :obs4 中使用 select 来做到这一点,但是,由于观察次数可能不同,我想动态化范围,我的代码如下所示:
proc sql;
create table segments as select distinct substr(name,1,6) as segment from dictionary.columns
where libname = 'WORK' and memname = 'ALL_CCFS' and name ne 'MONTH';
run;
proc sql noprint;
select count(*) into: count from segments;
run;
proc sql noprint;
select segment into :segment_1 - :segment_&count. from dictionary.columns;
run;
但是,这似乎不起作用...有什么建议吗?谢谢!
- 保留最后一个值 empty/blank,SAS 将自动创建它们
- 将其设置为大得离谱,SAS 将只使用所需的内容
使用数据步骤创建它,您可以在其中动态增加您的数字(未显示)。
proc sql noprint;
select segment into :segment_1 -
from dictionary.columns;
run;
proc sql noprint;
select segment into :segment_1 - :segment_999
from dictionary.columns;
run;
我想将多个观察值放入一个自己的宏变量中。我会通过在 :obs1 - :obs4 中使用 select 来做到这一点,但是,由于观察次数可能不同,我想动态化范围,我的代码如下所示:
proc sql;
create table segments as select distinct substr(name,1,6) as segment from dictionary.columns
where libname = 'WORK' and memname = 'ALL_CCFS' and name ne 'MONTH';
run;
proc sql noprint;
select count(*) into: count from segments;
run;
proc sql noprint;
select segment into :segment_1 - :segment_&count. from dictionary.columns;
run;
但是,这似乎不起作用...有什么建议吗?谢谢!
- 保留最后一个值 empty/blank,SAS 将自动创建它们
- 将其设置为大得离谱,SAS 将只使用所需的内容
使用数据步骤创建它,您可以在其中动态增加您的数字(未显示)。
proc sql noprint; select segment into :segment_1 - from dictionary.columns; run; proc sql noprint; select segment into :segment_1 - :segment_999 from dictionary.columns; run;