- Aggregate functions
- AVERAGE function
- BETWEEN operator
- CASE expression
- CAST() function
- COALESCE() function
- Comment
- Common table expression
- Constraints
- CONVERT function
- Cursor
- Data types
- Date functions
- DELETE statement
- DROP TABLE statement
- EXISTS operator
- HAVING clause
- IF statement
- Index
- IS NOT NULL condition
- IS NULL condition
- Joins
- LAG function
- LENGTH() function
- LIKE operator
- MERGE statement
- Normalization
- Not equal
- Operators
- ORDER BY clause
- Partition
- Pivot table
- Regex
- REPLACE function
- ROUND function
- SELECT DISTINCT clause
- SELECT statement
- Set operators
- Stored procedure
- String functions
- Subquery
- Substring
- Temporary table
- Transaction
- Trigger
- TRUNCATE TABLE
- UPDATE statement
- Views
- WHERE clause
- Window functions
SQL
SQL WHERE Clause: Syntax, Usage, and Examples
The SQL WHERE clause lets you filter records by applying conditions to your queries. It tells the database to return only rows that match specific criteria, making your queries more precise and efficient.
How to Use the SQL WHERE Clause
Use the SQL WHERE clause in SELECT, UPDATE, DELETE, or other DML statements to restrict which rows are affected. The basic syntax looks like this:
SELECT column1, column2
FROM table_name
WHERE condition;
You can compare column values using operators like =
, !=
, >
, <
, >=
, <=
, BETWEEN
, LIKE
, IN
, and IS NULL
.
SELECT * FROM Employees
WHERE Department = 'Marketing';
Use this to find all employees who work in the Marketing department.
To combine multiple conditions, use AND
, OR
, and parentheses:
SELECT * FROM Orders
WHERE Status = 'Shipped' AND OrderDate >= '2023-01-01';
You can include more complex logic, like ranges or pattern matches:
SELECT * FROM Products
WHERE Price BETWEEN 50 AND 200 AND Name LIKE 'A%';
You can filter rows in just about any SQL query by placing the condition after the WHERE keyword.
When to Use the WHERE Clause in SQL
Use the SQL WHERE clause any time you want to focus your query on just a portion of a table instead of fetching or modifying everything.
Retrieve Targeted Results
You often don’t need the entire dataset. If you're searching for orders from a specific customer, rows matching a name pattern, or values in a certain range, the WHERE clause helps you zero in.
Update or Delete Specific Records
Without a WHERE clause, an UPDATE or DELETE statement affects all rows. To modify only certain ones—like marking overdue invoices or deleting inactive users—add a condition.
Validate Data
When testing queries or checking data quality, filtering with WHERE helps you understand what’s happening with a subset of your data.
Examples of the WHERE Clause in SQL
Let’s walk through practical uses of WHERE in real-world queries.
Example 1: Filtering by Exact Match
SELECT * FROM Customers
WHERE Country = 'Germany';
Use this to get all customers located in Germany.
Example 2: Using Logical Operators
SELECT * FROM Orders
WHERE Status = 'Processing' OR Status = 'Shipped';
Use OR when you want any one of multiple conditions to match.
Example 3: Combining Multiple Conditions
SELECT * FROM Employees
WHERE Department = 'Engineering' AND Salary > 70000;
Use AND when both conditions need to be true.
Example 4: Pattern Matching with LIKE
SELECT * FROM Products
WHERE ProductName LIKE 'Pro%';
Use LIKE when you want to match a pattern. %
means any number of characters.
Example 5: NULL Checks
SELECT * FROM Subscriptions
WHERE CancellationDate IS NULL;
Use IS NULL to find rows where a column has no value.
Example 6: Filtering Date Ranges
SELECT * FROM Sales
WHERE SaleDate BETWEEN '2022-01-01' AND '2022-12-31';
Use BETWEEN when working with numeric or date ranges.
Learn More About the WHERE Clause in SQL
SQL Query WHERE Clause in Different Statements
You’re not limited to using the WHERE clause in SELECT queries. You can use it in DELETE and UPDATE as well:
UPDATE Employees
SET Status = 'Inactive'
WHERE LastLogin < '2023-01-01';
DELETE FROM Orders
WHERE OrderDate < '2021-01-01';
Without WHERE, both would affect the entire table.
SQL Multiple WHERE Clauses?
Technically, SQL doesn't allow more than one WHERE clause per query, but you can combine as many conditions as you like using AND
/OR
. You can group conditions with parentheses for clarity:
SELECT * FROM Users
WHERE (Country = 'US' AND Status = 'Active') OR (Country = 'Canada' AND Role = 'Admin');
This flexibility allows for very specific filtering.
Join and WHERE Clause SQL Example
In a JOIN query, the WHERE clause filters the final result after the tables are joined:
SELECT Orders.OrderID, Customers.Name
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID
WHERE Customers.Country = 'UK';
Use WHERE after JOINs to apply conditions to any of the involved tables.
SQL CASE Statement in WHERE Clause
You can use CASE expressions inside a WHERE clause when the condition depends on a value:
SELECT * FROM Invoices
WHERE
CASE
WHEN PaymentType = 'Credit' THEN Amount > 1000
ELSE Amount > 500
END;
This lets you apply conditional logic directly in your filter.
HAVING vs WHERE Clause in SQL
The WHERE clause filters individual rows before any grouping happens. The HAVING clause filters groups after the GROUP BY
step.
-- WHERE filters rows before grouping
SELECT Department, COUNT(*)
FROM Employees
WHERE Status = 'Active'
GROUP BY Department;
-- HAVING filters groups after grouping
SELECT Department, COUNT(*)
FROM Employees
GROUP BY Department
HAVING COUNT(*) > 10;
Use WHERE for raw data filtering and HAVING for group-level filtering.
Performance Tips for WHERE
To improve performance when using the SQL WHERE clause:
- Use indexed columns in your condition if possible
- Avoid wrapping columns in functions like
YEAR(OrderDate)
in the WHERE clause, as it may prevent index usage - Be cautious with
OR
, which can increase query complexity—rewrite withIN
if applicable - Use proper data types and date formats when filtering dates
Here’s a rewrite with IN:
SELECT * FROM Orders
WHERE Status IN ('Processing', 'Pending');
This is cleaner than writing multiple OR conditions and easier to read.
Use the SQL WHERE clause to filter data effectively in any SQL operation. It’s a critical part of writing readable, maintainable queries and preventing unintentional data changes. Whether you’re cleaning up records, pulling reports, or managing permissions, the WHERE clause helps you control the scope of your work and keeps your data precise.
Sign up or download Mimo from the App Store or Google Play to enhance your programming skills and prepare for a career in tech.