SQL IN Operator (original) (raw)

The **SQL IN operator filters data based on a list of specific values. In general, we can only use one condition in the **Where clause, but the IN operator allows us to specify multiple values.

In this article, we will learn about the **IN operator in SQL by understanding its syntax and examples.

IN Operator

The **IN Operator in SQL is used to specify multiple values/sub-queries in the WHERE clause. It provides an easy way to handle multiple **OR conditions.

We only pass a single condition in the WHERE clause, however there might be situations where we need to select data based on multiple conditions. For such cases, the IN operator is used.

**Note: If any of the conditions are passed using the IN operator, they will be considered true

**Syntax:

The **Syntax of the IN operator is as follows:

**SELECT column_name **FROM table_name

**WHERE condition **IN (condition_value1, condition_value2 .....);

Here, we select the column _**column_name_from the table _**table_name_where the condition is checked in all the **condition_values passed with the **IN operator.

Example of SQL IN Operator

We will use the following SQL table for our examples below:

CREATE TABLE Employee (
Fname VARCHAR(50),
Lname VARCHAR(50),
Ssn INT,
Bdate DATE,
Address VARCHAR(100),
Sex CHAR(1),
Salary DECIMAL(10, 2)
);
INSERT INTO Employee (Fname, Lname, Ssn, Bdate, Address, Sex, Salary) VALUES
('Chiranjeev', 'Singh', 1, '2002-07-31', 'Delhi', 'M', 1111789.00),
('Harry', 'Stark', 2, '1990-07-31', 'Delhi', 'M', 3333.00),
('Meghna', 'Gururaani', 5, '2002-04-04', 'Almora', 'F', 3433.00),
('Aniket', 'Bhardwaj', 6, '2001-05-05', 'Ponta', 'M', 56564.00),
('Vritti', 'Goel', 7, '2002-03-05', 'Delhi', 'F', 7565.00),
('Aashish', 'Kumar', 8, '2002-08-04', 'Himachal', 'M', 44657.00),
('Siddharth', 'Chaturvedi', 9, '2003-11-10', 'Lucknow', 'M', 244322.00);

**Output:

**Fname **Lname **Ssn **Bdate **Address **Sex **Salary
Chiranjeev Singh 1 2002-07-31 Delhi M 1111789.00
Harry Stark 2 1990-07-31 Delhi M 3333.00
Meghna Gururaani 5 2002-04-04 Almora F 3433.00
Aniket Bhardwaj 6 2001-05-05 Ponta M 56564.00
Vritti Goel 7 2002-03-05 Delhi F 7565.00
Aashish Kumar 8 2002-08-04 Himachal M 44657.00
Siddharth Chaturvedi 9 2003-11-10 Lucknow M 244322.00

**Example 1: Basic Use of the IN Operator

SQL Query to get Fname and Lname of employees who have address in Delhi and Himachal

**Query:

**SELECT Fname, Lname FROM employee **WHERE Address **IN ('Delhi','Himachal');

**Output:

**Fname **Lname
Chiranjeev Singh
Harry Stark
Vritti Goel
Aashish Kumar

In this query, we fetched the Fname and Lname of all the employees whose address is either Delhi or Himachal. To do so, we use the IN operator to pass these values to the WHERE clause.

**Example 2: SQL IN and NOT IN Operators

We can use the **SQL IN with the **NOT operator to exclude specified data from our result.

**Query:

**SELECT Fname FROM employee **WHERE Address **NOT IN ('Delhi', 'Lucknow');

**Output:

**Fname
Meghna
Aniket
Aashish

Here, we have created a query to fetch the Fname of all employees whose address is neither Delhi nor Lucknow. We used the NOT operator with IN to exclude these values.

**Example 3

We have used IN operator with explicit values for conditions. However, we can use the IN operator to select values for the condition from another query. For demonstrating this, we will use another table from the database, manager. The contents of the table are given below.

**Ssn **Department
5 Sales
1 Technical

Now, we will write a query to fetch details of all employees who are managers. This can be done by using nested SELCT queries with the IN operator.

**Query:

**SELECT * **FROM employee **WHERE Ssn **IN (SELECT Ssn FROM manager);

**Output:

**Fname **Lname **Ssn **Bdate **Address **Sex **Salary
Chiranjeev Singh 1 2002-07-31 Delhi M 1111789.00
Meghna Gururaani 5 2002-04-04 Almora F 3433.00

Here, we have selected the Ssn of all managers from the manager table and then, we have passed the result of this query to the main query in the IN operator, which will fetch the details of all employees who have same Ssn as fetched from the nested query.

Key takeaways about the SQL IN operator:

Conclusion

The SQL IN operator is a powerful tool for filtering data based on multiple values. By eliminating the need for multiple OR conditions, it makes your queries more concise and readable. Whether you’re filtering records from a list of values or using a subquery, the IN operator offers an elegant and efficient solution. Mastering the IN operator can help you write cleaner and more efficient SQL queries that scale with your data.