data have;
   a ="2, 2, 3, 3, 4   "; output;
   a ="2, 3, 3, 4, 5, 5"; output;
   a ="3, 6, 8, 8, 9, 0"; output;
run;
data have1;
   set have;
   do i = 1 to countw(a);
    b1 = scan(a,i);
    output;
   end; drop i;
run;
proc sql; 
    create table have2 as
    select distinct a, b1
    from have1
    group by a
    order by a, b1;
quit;
data wanted;
    set have2;
    by a;
      length b $20;
      retain b;
    if first.a then b=b1;
    else b = cats(b, ",", b1);
    if last.a then output;
    drop b1;
run;
