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
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.