AND / OR
combining multiple conditions
Overview
AND and OR combine predicates: AND requires every predicate to be TRUE, while OR requires at least one. AND has higher precedence, but production queries should use parentheses to show the intended business grouping instead of relying on remembered precedence. Comparisons involving NULL can also be UNKNOWN rather than simply true or false.
Basic syntax
SELECT * FROM orders WHERE department = 'Sales' AND amount > 1000;
Examples
AND / OR example
Filter orders to the Sales department with an amount above 1000, so both predicates must be satisfied.
Sample table
orders| id | customer_id | product_id | name | department | amount | status | created_at | discount |
|---|---|---|---|---|---|---|---|---|
| 1 | 101 | 201 | Alice | Sales | 1200 | paid | 2026-01-03 | 0 |
| 2 | 102 | 202 | Bob | IT | 900 | pending | 2026-01-08 | 50 |
| 3 | 101 | 201 | Cindy | Sales | 1500 | paid | 2026-02-02 | 100 |
| 4 | 104 | 203 | David | HR | 700 | cancelled | 2026-02-15 | 0 |
Run result
| id | customer_id | product_id | name | department | amount | status | created_at | discount |
|---|---|---|---|---|---|---|---|---|
| 1 | 101 | 201 | Alice | Sales | 1200 | paid | 2026-01-03 | 0 |
| 3 | 101 | 201 | Cindy | Sales | 1500 | paid | 2026-02-02 | 100 |
Common issues
Check the operator precisely: BETWEEN includes both ends, while adding or omitting equals changes a range.
Use parentheses to express business groups instead of relying on remembered precedence.
NULL represents unknown, so a comparison may not be TRUE; use IS NULL or an explicit NULL strategy.
Tags
Was this explanation clear?
Thanks. This feedback will inform the next content review.