使用sas proc sql从库中选择第n个数据集
我有一个储存每月数据的库,我想选择最近三个月的数据。 对于最新的数据,我使用了下面的代码。 所需的结果是为三个月的数据创建&data、&data1和&data2使用sas proc sql从库中选择第n个数据集,sas,proc-sql,Sas,Proc Sql,我有一个储存每月数据的库,我想选择最近三个月的数据。 对于最新的数据,我使用了下面的代码。 所需的结果是为三个月的数据创建&data、&data1和&data2 PROC SQL; SELECT MEMNAME INTO: DATA FROM DICTIONARY.TABLES WHERE UPCASE(MEMNAME) = 'LIBNAME' AND UPCASE(MEMNAME) LIKE 'DATA20%' AND LENGTH(MEMNAME)=10 AND NOBS > 1 OR
PROC SQL;
SELECT MEMNAME INTO: DATA FROM DICTIONARY.TABLES
WHERE UPCASE(MEMNAME) = 'LIBNAME'
AND UPCASE(MEMNAME) LIKE 'DATA20%'
AND LENGTH(MEMNAME)=10 AND NOBS > 1
ORDER BY MEMNAME DESCENDING;
QUIT;
我尝试在order by语句之前添加where MONOTIC()=2,但它通过升序给出了第二个数据。
如何以降序方式提取它。看看是否可以将其用作模板
data data202001; set sashelp.class; run;
data data202002; set sashelp.class; run;
data data202003; set sashelp.class; run;
data data202004; set sashelp.class; run;
data data202005; set sashelp.class; run;
data data202006; set sashelp.class; run;
data data202007; set sashelp.class; run;
data data202008; set sashelp.class; run;
proc sql outobs=3 noprint;
select memname into :data1 -
from dictionary.tables
where libname = "WORK"
and upcase(memname) like "DATA%"
and nobs > 1
order by memname desc;
quit;
%put &data1. &data2. &data3.;
印刷品:
DATA1=DATA202008 DATA2=DATA202007 DATA3=DATA202006您可以使用
Proc SQL
选项OUTOBS=
将输出限制在结果集的前N行
例如:
PROC SQL;
reset noprint outobs=3;
SELECT MEMNAME INTO: DATA separated by ' '
FROM DICTIONARY.TABLES
WHERE LIBNAME = 'SASHELP'
AND MEMNAME LIKE 'C%'
AND NOBS > 1
ORDER BY MEMNAME DESCENDING
;
QUIT;
%put &=DATA;
日志
命名约定是什么?2020年8月的数据202008?
DATA=CP951 COUNTSERIES COMET