将 SAS PROC SQL SELECT 的动态范围动态化为宏创建



我想将多个观察结果放入一个单独的宏变量中。我会通过使用 select into :obs1 - :obs4 来做到这一点,但是,由于观察计数可能不同,我想动态化范围,我的代码如下所示:

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;

但是,这似乎不起作用...有什么建议吗?谢谢!

  • 将最后一个值留空/空白,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;
    

相关内容

  • 没有找到相关文章

最新更新