Hi,
when I use SELECT-WHEN in a PROC DS2 and list more than 1 value after a WHEN, SAS throws an error: "Parse encountered constant when expecting ')'.
Is this behavior (which differs from a DATA Step) intended?
Example: The following code works as long as no additional values are added after a WHEN as shown in the commented line (uncomment and the error will occur):
proc ds2; data _null_; method init(); dcl varchar(8) test; test = 'b'; select( test ); when( 'b' ) put 'Beginning';
/*when( 'b', 'B' ) put 'Beginning';*/ when( 'm' ) put 'Middle'; when( 'e' ) put 'End'; end; end; enddata; run; quit;
Try this:
select( test );
when( 'b' )
when( 'B' ) put 'Beginning';
when( 'm' ) put 'Middle';
when( 'e' ) put 'End';
end;
Catch the best of SAS Innovate 2025 — anytime, anywhere. Stream powerful keynotes, real-world demos, and game-changing insights from the world’s leading data and AI minds.
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.
Ready to level-up your skills? Choose your own adventure.