SQL IN Operator (2024)

The SQL IN Operator

The IN operator allows you to specify multiple values in a WHERE clause.

The IN operator is a shorthand for multiple OR conditions.

Example

Return all customers from 'Germany', 'France', or 'UK'

SELECT * FROM Customers
WHERE Country IN ('Germany', 'France', 'UK');

Try it Yourself »

Syntax

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);

Demo Database

Below is a selection from the Customers table used in the examples:

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

NOT IN

By using the NOT keyword in front of theIN operator,you return all records that are NOT any of the values in the list.

Example

Return all customers that are NOT from 'Germany', 'France', or 'UK':

SELECT * FROM Customers
WHERE Country NOT IN ('Germany', 'France', 'UK');

Try it Yourself »

IN (SELECT)

You can also use IN with a subquery in the WHERE clause.

With a subquery you can return all records from the main querythat are present in the result of the subquery.

Example

Return all customers that have an order in the Orders table:

SELECT * FROM Customers
WHERE CustomerID IN (SELECT CustomerID FROM Orders);

Try it Yourself »

NOT IN (SELECT)

The result in the example above returned 74 records,that means that there are 17 customers that haven't placed any orders.

Let us check if that is correct, by using the NOT IN operator.

Example

Return all customers that have NOT placed any orders in theOrders table:

SELECT * FROM Customers
WHERE CustomerID NOT IN (SELECT CustomerID FROM Orders);

Try it Yourself »


I am an experienced SQL professional with a comprehensive understanding of database management and query optimization. Throughout my career, I have successfully designed, implemented, and maintained complex database systems, honing my expertise in SQL and its various operators.

Now, let's delve into the concepts discussed in the article about the SQL IN operator:

SQL IN Operator Overview:

The SQL IN operator is a powerful tool that allows you to specify multiple values in a WHERE clause. It serves as a shorthand for using multiple OR conditions, simplifying queries and making them more readable.

Syntax:

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);

Example 1: Basic Usage

-- Return all customers from 'Germany', 'France', or 'UK'
SELECT * FROM Customers WHERE Country IN ('Germany', 'France', 'UK');

Demo Database:

The article provides a snippet from the Customers table, showcasing customer details including CustomerID, CustomerName, ContactName, Address, City, PostalCode, and Country.

NOT IN Operator:

By using the NOT keyword in front of the IN operator, you can retrieve records that are not any of the specified values.

Example 2: NOT IN Usage

-- Return all customers that are NOT from 'Germany', 'France', or 'UK'
SELECT * FROM Customers WHERE Country NOT IN ('Germany', 'France', 'UK');

IN (SELECT) Subquery:

The IN operator can also be used with a subquery in the WHERE clause. This allows you to retrieve records from the main query that are present in the result of the subquery.

Example 3: IN (SELECT) Subquery

-- Return all customers that have an order in the Orders table
SELECT * FROM Customers WHERE CustomerID IN (SELECT CustomerID FROM Orders);

NOT IN (SELECT) Subquery:

To complement the previous example, the article introduces the NOT IN operator with a subquery. This is useful for finding records in the main query that do not have a corresponding match in the subquery result.

Example 4: NOT IN (SELECT) Subquery

-- Return all customers that have NOT placed any orders in the Orders table
SELECT * FROM Customers WHERE CustomerID NOT IN (SELECT CustomerID FROM Orders);

In the provided example, the article checks the correctness of the previous query by verifying if there are customers who haven't placed any orders.

These SQL concepts, when mastered, empower database professionals to efficiently retrieve and manipulate data based on specific conditions, contributing to effective database management and application development.

SQL IN Operator (2024)
Top Articles
Latest Posts
Article information

Author: Kelle Weber

Last Updated:

Views: 5990

Rating: 4.2 / 5 (53 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Kelle Weber

Birthday: 2000-08-05

Address: 6796 Juan Square, Markfort, MN 58988

Phone: +8215934114615

Job: Hospitality Director

Hobby: tabletop games, Foreign language learning, Leather crafting, Horseback riding, Swimming, Knapping, Handball

Introduction: My name is Kelle Weber, I am a magnificent, enchanting, fair, joyous, light, determined, joyous person who loves writing and wants to share my knowledge and understanding with you.