A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://neon.com/postgresql/postgresql-tutorial/postgresql-where below:

Filtering Rows of a Query

Summary: in this tutorial, you will learn how to use PostgreSQL WHERE clause to filter rows returned by a SELECT statement.

The SELECT statement returns all rows from one or more columns in a table. To retrieve rows that satisfy a specified condition, you use a WHERE clause.

The syntax of the PostgreSQL WHERE clause is as follows:

SELECT
  select_list
FROM
  table_name
WHERE
  condition
ORDER BY
  sort_expression;

In this syntax, you place the WHERE clause right after the FROM clause of the SELECT statement.

The WHERE clause uses the condition to filter the rows returned from the SELECT clause.

The condition is a boolean expression that evaluates to true, false, or unknown.

The query returns only rows that satisfy the condition in the WHERE clause. In other words, the query will include only rows that cause the condition to evaluate to true in the result set.

PostgreSQL evaluates the WHERE clause after the FROM clause but before the SELECT and ORDER BY clause:

If you use column aliases in the SELECT clause, you cannot use them in the WHERE clause.

Besides the SELECT statement, you can use the WHERE clause in the UPDATE and DELETE statement to specify rows to update and delete.

To form the condition in the WHERE clause, you use comparison and logical operators:

Operator Description = Equal > Greater than < Less than >= Greater than or equal <= Less than or equal <> or != Not equal AND Logical operator AND OR Logical operator OR IN Return true if a value matches any value in a list BETWEEN Return true if a value is between a range of values LIKE Return true if a value matches a pattern IS NULL Return true if a value is NULL NOT Negate the result of other operators

Let’s practice with some examples of using the WHERE clause.

We will use the customer table from the sample database for demonstration.

The following statement uses the WHERE clause to find customers whose first name is Jamie:

SELECT
  last_name,
  first_name
FROM
  customer
WHERE
  first_name = 'Jamie';

Output:

last_name | first_name
-----------+------------
 Rice      | Jamie
 Waugh     | Jamie
(2 rows)
2) Using the WHERE clause with the AND operator example

The following example uses a WHERE clause with the AND logical operator to find customers whose first name and last names are Jamie and Rice:

SELECT
  last_name,
  first_name
FROM
  customer
WHERE
  first_name = 'Jamie'
  AND last_name = 'Rice';

Output:

last_name | first_name
-----------+------------
 Rice      | Jamie
(1 row)

The following example uses a WHERE clause with an OR operator to find the customers whose last name is Rodriguez or first name is Adam:

SELECT
  first_name,
  last_name
FROM
  customer
WHERE
  last_name = 'Rodriguez'
  OR first_name = 'Adam';

Output:

first_name | last_name
------------+-----------
 Laura      | Rodriguez
 Adam       | Gooch
(2 rows)

If you want to find a value in a list of values, you can use the IN operator.

The following example uses the WHERE clause with the IN operator to find the customers with first names in the list Ann, Anne, and Annie:

SELECT
  first_name,
  last_name
FROM
  customer
WHERE
  first_name IN ('Ann', 'Anne', 'Annie');

Output:

first_name | last_name
------------+-----------
 Ann        | Evans
 Anne       | Powell
 Annie      | Russell
(3 rows)

To find a string that matches a specified pattern, you use the LIKE operator.

The following example uses the LIKE operator in the WHERE clause to find customers whose first names start with the word Ann:

SELECT
  first_name,
  last_name
FROM
  customer
WHERE
  first_name LIKE 'Ann%';

Output:

first_name | last_name
------------+-----------
 Anna       | Hill
 Ann        | Evans
 Anne       | Powell
 Annie      | Russell
 Annette    | Olson
(5 rows)

The % is called a wildcard that matches any string. The 'Ann%' pattern matches any strings that start with 'Ann'.

The following example finds customers whose first names start with the letter A and contains 3 to 5 characters by using the BETWEEN operator.

The BETWEEN operator returns true if a value is in a range of values.

SELECT
  first_name,
  LENGTH(first_name) name_length
FROM
  customer
WHERE
  first_name LIKE 'A%'
  AND LENGTH(first_name) BETWEEN 3
  AND 5
ORDER BY
  name_length;

Output:

first_name | name_length
------------+-------------
 Amy        |           3
 Ann        |           3
 Ana        |           3
 Andy       |           4
 Anna       |           4
 Anne       |           4
 Alma       |           4
 Adam       |           4
 Alan       |           4
 Alex       |           4
 Angel      |           5
...

In this example, we use the LENGTH() function to get the number of characters of an input string.

This example finds customers whose first names start with Bra and last names are not Motley:

SELECT
  first_name,
  last_name
FROM
  customer
WHERE
  first_name LIKE 'Bra%'
  AND last_name <> 'Motley';

Output:

first_name | last_name
------------+-----------
 Brandy     | Graves
 Brandon    | Huey
 Brad       | Mccurdy
(3 rows)

Note that you can use the != operator and <> operator interchangeably because they are equivalent.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4