Hi
I would like to check a field whether all the bytes are having same values.
Eg. I need to check field EMP_ID which is 9bytes
IF EMP_ID in ('111111111','222222222','333333333',...,'999999999') then
message = 'invalid employee id';
how to replicate the above scenario in an optimal way.
Thanks in advance
How about
if compress(emp_id,substr(emp_id,1,1)) ="" then .....;
How about
if compress(emp_id,substr(emp_id,1,1)) ="" then .....;
Thanks 🙂 this works perfectly
You'll probably need some extra treatment for missing source strings.
Here some additional coding options.
data sample;
infile datalines truncover;
input instr $char16.;
flg1 =prxmatch('/^(\d)\1*$/o',strip(instr));
flg2 =prxmatch('/^(\d)\1*$/o',compress(instr));
flg3 = compress(instr,substr(instr,1,1)) eq " ";
datalines;
11111111
2222
11111121
333 333
444 444
555 6 55
777 7 77
aaaaaaa
;
run;
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.