You can use the IN operator in the PROC SQL statement in SAS to only return rows where a variable in a dataset contains a value in a list.
The following example shows how to use the IN operator in practice.
Example: Using IN Operator in PROC SQL in SAS
Suppose we have the following dataset in SAS that contains information about various basketball players:
/*create dataset*/
data my_data;
input team $ points;
datalines;
A 12
A 14
A 15
A 18
B 31
B 32
C 35
C 36
C 40
D 28
E 20
E 21
;
run;
/*view dataset*/
proc print data=my_data;
We can use the IN operator in PROC SQL to select only the rows where the team is equal to A, B, or E:
/*select all rows where team is A, B, or E*/
proc sql;
select *
from my_data
where team in ('A', 'B', 'E');
quit;
Notice that only the rows where the team is equal to A, B, or E are returned.
The opposite of the IN operator in PROC SQL is NOT IN, which selects rows where some variable in a dataset does not contain a value in a list.
The following code shows how to use the NOT IN operator to select all rows where the team is not equal to A, B, or E:
/*select all rows where team is not A, B, or E*/
proc sql;
select *
from my_data
where team not in ('A', 'B', 'E');
quit;
Notice that only the rows where the team is not equal to A, B, or E are returned.
Additional Resources
The following tutorials explain how to perform other common tasks in SAS:
SAS: How to Use UNION in PROC SQL
SAS: How to Use EXCEPT in PROC SQL
SAS: How to Use Proc Univariate by Group