Hello eveybody. I am writing SAS program and I found this wired phenomenon.
I submit code like this:
data _null_;
set sashelp.class;
select(name);
when ('Alice','Jane');
when ('John');
other;
end;
run;
%put this is test text;
The color of %put statement is black:
If I just remove the comma between 'Alice' and 'Jane' and run this program again , the color of %put statement is blue:
Why the text color of %put statement turn blue without 'NOTE:' prefix?
Ps:
1. I have tried other syntax error but they all failed to turn text color of %put statement blue.
2. If I delete "when ('John');", text color of %put statement will always be black.
Seems to be related to not having an operation after the WHEN.
Note that is, with something after the when, generates a different error message and the macro put text is black.
61 data _null_; 62 set sashelp.class; 63 select(name); 64 when ('Alice' 'Jane') Put "Name is" Name; ------ 388 76 65 when ('John') ; ---- 346 ERROR 388-185: Expecting an arithmetic operator. ERROR 76-322: Syntax error, statement will be ignored. ERROR 346-185: No executable statement preceding WHEN statement. 66 other; 67 end; 68 run; NOTE: The SAS System stopped processing this step because of errors. NOTE: DATA statement used (Total process time): real time 0.00 seconds cpu time 0.00 seconds 69 %put this is test text; this is test text
So I would guess that it has something to do with the particular class of error setting a property way in the background
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.