IN operator is used to test for a value that matches any one of the values from a fixed set of values.
If you use the OR operator for the same column multiple times –
SELECT ProductId, Name, StandardCost, ListPrice, SafetyStockLevel
FROM Production.Product
WHERE ProductID =1OR ProductID =10OR ProductID =15OR ProductID =20;
Here, we have used the OR operator multiple times. The better way to code this query is by using the IN operator-
Example
SELECT ProductId, Name, StandardCost, ListPrice, SafetyStockLevel
FROM Production.Product
WHERE ProductID IN (1, 10, 15, 20);
This time, I wish to select the StateProvince where State Province code is either AK, AZ, CO, MB or ID, then you can simply code as –
Example
SELECT*FROM Person.StateProvince
WHERE StateProvinceCode IN ('AK', 'AZ', 'CO', 'MB', 'ID');
Note You can also use the NOT IN operator to select records not present within the sets of elements
NOT IN Operator
In the same way, if I wish to get all the StateProvince which do not fall within AK, AZ, CO, MB or ID, then I can simply use NOT IN operator for this purpose.
SELECT*FROM Person.StateProvince
WHERE StateProvinceCode NOTIN ('AK', 'AZ', 'CO', 'MB', 'ID');