SQLPathLab
Basic Query · Basic

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

Table:orders
orders
idcustomer_idproduct_idnamedepartmentamountstatuscreated_atdiscount
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

result
idcustomer_idproduct_idnamedepartmentamountstatuscreated_atdiscount
1 101 201 Alice Sales 1200 paid 2026-01-03 0
3 101 201 Cindy Sales 1500 paid 2026-02-02 100

Common issues

Are boundary values included?

Check the operator precisely: BETWEEN includes both ends, while adding or omitting equals changes a range.

How do I avoid mistakes with AND and OR?

Use parentheses to express business groups instead of relying on remembered precedence.

Why does a condition not match NULL?

NULL represents unknown, so a comparison may not be TRUE; use IS NULL or an explicit NULL strategy.

Tags

CommonFiltering

Was this explanation clear?