Summary: in this tutorial, you will learn how to use the Db2 AND operator to combine multiple Boolean expressions.
Introduction Db2 AND operator
The AND operator is a logical operator that combines two Boolean expressions or predicates. You use the AND operator to specify that a search must satisfy both conditions.
The following illustrates the AND operator syntax:
boolean_expression1 AND boolean_expression2
Code language: SQL (Structured Query Language) (sql)In this syntax, the boolean_expression1 and boolean_expression2 evaluate to true, false, and unknown.
This table displays the result when combining true, false, and unknown values using the AND operator:
| TRUE | FALSE | UNKNOWN | |
|---|---|---|---|
| TRUE | TRUE | FALSE | UNKNOWN |
| FALSE | FALSE | FALSE | FALSE |
| UNKNOWN | UNKNOWN | FALSE | UNKNOWN |
If you use both AND and OR operators in an expression, Db2 evaluates the AND operator first. However, you can change the order of evaluation using parentheses.
To negate the AND operator, you use the NOT operator as follows:
NOT (boolean_expression1 AND boolean_expression2)
Code language: SQL (Structured Query Language) (sql)The AND operator is often used in the WHERE clause to form the search condition for the SELECT, UPDATE, and DELETE statement.
Db2 AND operator examples
Let’s use the books table from the sample database for the demo.

1) Db2 AND operator example
This example uses the AND operator to find the books whose ratings are between 4 and 5:
SELECT
title,
rating,
total_pages
FROM
books
WHERE rating >= 4
AND rating <= 5
ORDER BY
title;
Code language: SQL (Structured Query Language) (sql)Here is the result set:

2) Using multiple Db2 AND operators example
This example uses two AND operators to find books whose ratings are between 4 and 5 and the number of pages is greater than 1300:
SELECT
title,
rating,
total_pages
FROM
books
WHERE rating >= 4
AND rating <= 5 AND total_pages > 1300
ORDER BY
title;
Code language: SQL (Structured Query Language) (sql)The output is as follows:

3) Using Db2 AND operator with parentheses
If you use the AND and OR operators with more than two conditions, you can use parentheses to explicitly specify the order in which you want Db2 to evaluate the conditions.
This example uses both AND and OR operators to find books that satisfy both the following conditions:
- The number of pages is greater than 1,000 and less than 1,200
- Rating is greater than 4.7
Query:
SELECT
title,
total_pages,
rating
FROM
books
WHERE(total_pages < 1200
AND total_pages > 1000)
OR rating > 4.7
ORDER BY
rating DESC;
Code language: SQL (Structured Query Language) (sql)
If you move the parentheses, the meaning of the WHERE clause can change significantly:
SELECT
title,
total_pages,
rating
FROM
books
WHERE total_pages < 1200
AND (total_pages > 1000
OR rating > 4.7)
ORDER BY
rating DESC;
Code language: SQL (Structured Query Language) (sql)
This query returns books that satisfy both the following conditions:
- The number of pages is less than 1200
- The number of pages is greater than 1000 or rating is greater than 4.7
4) Using Db2 NOT AND operator example
This example uses the NOT AND operator to find books that have the number of pages less than or equal 500 or rating greater than 4.7:
SELECT
title,
total_pages,
rating
FROM
books
WHERE NOT(total_pages > 500
AND rating < 4.7)
ORDER BY
total_pages DESC,
rating DESC;
Code language: SQL (Structured Query Language) (sql)Here is the result set:

Notice that based on De Morgan’s laws, NOT (A AND B) is equivalent to (NOT A OR NOT B)
In this tutorial, you have learned how to use the Db2 AND operator to form a search condition that combines two Boolean expressions.