PostgreSQL IN, Not IN with Examples

What is PostgreSQL In ?

The IN operator is used in a WHERE clause that allows checking whether a value is present in a list of other values. In Operation helps to reduce the need for multiple OR conditions in SELECT, UPDATE, INSERT, or DELETE statements.

Syntax

The IN operator takes the following syntax:

value IN (value_1, value_2, ...)

The value is the value that you are checking for in the list.

The value_1, value_2… are the list values.

If the value is found in the list, the operator will return a true.

The list can be a set of numbers of strings or even the output result of a SELECT statement as shown below:

value IN (SELECT value FROM table-name);

The statement placed inside the parenthesis is known as a subquery.

With Character

Let us demonstrate how you can use the IN operator with character values.

Consider the following table:

Employees:

PostgreSQL In With Character

Let us run the following query against the above table:

SELECT *
FROM Employees
WHERE name IN ('James John', 'Mercy Bush', 'Kate Joel');

It return the following:

PostgreSQL In With Character

We have a list of three names. We are searching for whether we can find any of these names in the name column of the Employees table. The Kate Joel was matched to one of the table’s records, and its details were returned.

With Numeric

Now, let us see how we can use the IN operator with numeric values.

Consider the Price table given below:

Price:

PostgreSQL In With Numeric

We can run the following query against the table:

SELECT *
FROM Price
WHERE price IN (200, 308, 250, 550);

This returns the following:

PostgreSQL In With Numeric

We have created a list with 4 numeric values. We are checking whether we can match any of these values with the values contained in the price column of the Price table. Two values were matched, and their details were returned.

Using NOT operator

The IN operator can be used together with the NOT operator. It returns the values that are not found in the specified column. We will use the Price table to demonstrate this.

SELECT *
FROM Price
WHERE price NOT IN (200, 400, 190, 230);

This will return the following:

PostgreSQL In Using NOT operator

We have created a list with 4 numerical values. We are checking the price column of the Price table for values that are not part of the list. Two values, 250 and 300, were not found. Hence their details have been returned.

Using pgAdmin

Now let’s see how the actions can be performed using pgAdmin.

With Character

To accomplish the same through pgAdmin, do this:

Step 1) Login to your pgAdmin account.

Step 2)

  1. From the navigation bar on the left- Click Databases.
  2. Click Demo.

Using pgAdmin With Character

Step 3) Type the query in the query editor:

SELECT *
FROM Employees
WHERE name IN ('James John', 'Mercy Bush', 'Kate Joel');

Step 4) Click the Execute button.

Using pgAdmin With Character

It should return the following:

Using pgAdmin With Character

With Numeric

To accomplish the same through pgAdmin, do this:

Step 1) Login to your pgAdmin account.

Step 2)

  1. From the navigation bar on the left- Click Databases.
  2. Click Demo.

Using pgAdmin With Numeric

Step 3) Type the query in the query editor:

SELECT *
FROM Price
WHERE price IN (200, 308, 250, 550);

Step 4) Click the Execute button.

Using pgAdmin With Numeric

It should return the following:

Using pgAdmin With Numeric

Using NOT operator

To accomplish the same through pgAdmin, do this:

Step 1) Login to your pgAdmin account.

Step 2)

  1. From the navigation bar on the left- Click Databases.
  2. Click Demo.

Using NOT operator

Step 3) Type the query in the query editor:

SELECT *
FROM Price
WHERE price NOT IN (200, 400, 190, 230);

Step 4) Click the Execute button.

Using NOT operator

It should return the following:

Using NOT operator

Summary

  • The IN operator is used with the WHERE operator. It allows checking whether a particular value is present in a specific table.
  • The IN operator helps in reducing the need for multiple OR operators in SELECT, UPDATE, INSERT, or DELETE statements.
  • When creating a character list to check for the presence of a value, each value in the list should be enclosed within single quotes.
  • The IN operator can also be used with numeric values.
  • When the IN operator is used together with the NOT operator, it returns all values that are not found in the specified column.

Download the Database used in this Tutorial