Back to SQL Notes
Topic #24

SQL In

IN lets you match a column against a list of values in one clean clause instead of chaining many ORs. It is the natural way to query for a set of known items.


The SQL IN Operator

The IN operator is used in the WHERE clause to check if a specified column's value matches any value within a provided list.

The IN operator functions as a shorthand for multiple OR conditions, making queries shorter and more readable.

The following SQL uses the IN operator to select all customers from Germany, France, or UK:

Example

SELECT * FROM Customers

 WHERE Country IN ('Germany', 'France', 'UK');

The following SQL uses multiple OR conditions to select all customers from Germany, France, or UK (same result, but longer code):

Example

SELECT * FROM Customers

WHERE Country = 'Germany' OR Country = 'France' OR Country = 'UK';

Syntax

<p><code class="sqlHigh">
SELECT <em>column_name(s)</em><br/>
FROM <em>table_name</em><br/>
WHERE <em>column_name</em> IN (<em>value1</em>,<em> value2</em>, ...);
</code></p>

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

The NOT IN Operator

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

Example

SELECT * FROM Customers

 WHERE Country NOT IN ('Germany', 'France', 'UK');

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 query that are present in the result of the subquery.

The following SQL returns all customers who also have an order in the "Orders" table:

Example

SELECT * FROM Customers

WHERE CustomerID IN (SELECT CustomerID FROM Orders);

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.

The following SQL returns all customers who do NOT have any orders in the "Orders" table:

Example

SELECT * FROM Customers

WHERE CustomerID NOT IN (SELECT CustomerID FROM Orders);

Want to go beyond the notes?

Join Coding Now Tech Institute's SQL course — live mentorship, real projects, and 100% placement support.

Enroll Now — Free Demo Available

SQL In – FAQs

Quick answers about learning SQL In in SQL.

This free note from Coding Now Tech Institute explains SQL In in SQL — concept, syntax and worked code examples you can copy, run and revise before interviews.
Yes. Every SQL topic on Coding Now Tech Institute, including SQL In, is 100% free with no signup required.
With focused practice, most students grasp SQL In in 1–3 days from these notes; pairing it with Coding Now Tech Institute's mentor-led course takes you to job-ready depth faster.
Use the code examples in this note, then ask doubts for free on the Coding Now Tech Institute Community (/community) — expert instructors answer within 24 hours.
Call NowEnroll Now