BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
mona4u
Lapis Lazuli | Level 10

Hi, 

I'm trying to subset the observations that match the criteria 

by if statement but my code below  doesn't work 

I know I can do it by where statement  but I also want to do it by if 

 

data new; 
set have;
if subject_id ne "%999%";
run;

sample of the data 

 

subject_id
200018001
200018002
200018003
200018005
200019999
200019999
200028001
200028002
200028005
200029999
200059999
200079999
200089999
200089999
200098001
200098002
200098003
200098004
200099999
200108001
200108002
200108003
200108004
200109999

 

 

 

 

1 ACCEPTED SOLUTION
2 REPLIES 2
Reeza
Super User

% is a wildcard in the WHERE statement with the LIKE operator, not an IF statement. 

WHERE statements allow SQL functions, IF statements do not. 

 

where subject_id like '%999%';

The equiavelnt IF statement would be to use FIND() or INDEX() to search for that string. 

 

if find('999', employee_id) > 0 ;
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
  • 2 replies
  • 1117 views
  • 2 likes
  • 3 in conversation