如果可以用data步做的话还是比较简单的,SQL俺不是很熟悉;
data temp;
input var $ @@;
cards;
a b c d e f g h i j k l
;
run;
proc sql noprint;
select strip(put(count(*),best.)) into:nn from temp;
select strip(var) into :x1-:x&nn from temp;
quit;
%macro create;
data temp;
length var $256;
retain var;
var="&x1"; output;
%do i=2 %to &nn;
var=catx('_',var,"&&x&i"); output;
%end;
run;
%mend;
%create;
|