BookmarkSubscribeRSS Feed
ChrisHemedinger
Community Manager

@Ron_MacroMaven - correct, as usual! I edited to add a LENGTH= option for insurance.

SAS For Dummies 3rd Edition! Check out the new edition, covering SAS 9.4, SAS Viya, and all of the modern ways to use SAS!
novinosrin
Tourmaline | Level 20

proc sql;

select distinct country into :list separated by ','

from have;

quit;

 

%macro op_wants_datasets_split;

%let num=1;

   %let dsname=%scan(%bquote(&list),&num,',');

   %do %while(&dsname ne);

      data %sysfunc(compress(&dsname));

       set have;

       where country="&dsname";

      run;

      %let num=%eval(&num+1);

      %let dsname=%scan(%bquote(&list),&num,',');

   %end;

%mend op_wants_datasets_split;

 

%op_wants_datasets_split

ParamKatkar
Fluorite | Level 6
proc sort data=work.sales out=work.unique (keep=Country)
nodupkey;
by country;
run;

data _null_;
set work.unique;
call execute('data ' !! compress(Country) !! '; set work.sales; where Country = "' !! Country !! '"; run;');
run;

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 17 replies
  • 5886 views
  • 9 likes
  • 11 in conversation