%Macro subDataset;
%do i=1 %to 37;
Proc sql;
select name into :vname&i
from dictionary.columns
where UPCASE(libname)="MYLIB" and UPCASE(memname)="MYDATASET"
and varnum in (&i);
quit;
%end;
%do j=2 %to 37;
data want&J;
set MYLIB.MYDATASET(keep=&vname1 &&vname&j);
run;
%end;
%mend;
%subDataset;