data a;
set WORK.ABC;
run;
proc sql ;
create table b as
select count(*) as count,*
from a
order by ORG_COL_641298
;
quit;
data c;
set b;
j=int(count/500)+1;
call symput('j',j);
run;
%macro loop;
data _null_;
do i=1 to &j.;
k=(i-1)*500+1;
end;
call symput('a'||left(i),k);
run;
%do i=1 %to &j.;
proc export data=c(firstobs=&&a&i. obs=500);
outfile="D:\ritter\vocceq&&a&i..txt" ;
run;
%mend loop;
%loop;
data abc;do p=1 to 10000;output;end;run;
data _null;set abc end=a;
if a then call symput('j',ceil(_n_/500));run;
%macro loop;
%do i=1 %to &j ;
data abc&i;
set abc;
if (_n_>500*&i-500 and _n_<500*&i) then output abc&&i;
run; proc export data=abc&i
outfile="D:\ritter\abc&i..txt";
run;
%end;
%mend loop;
%loop;