Filtering data in SQL is done mainly with the WHERE clause (and sometimes HAVING for aggregated results). It allows you to extract only the rows that meet certain conditions.
Here’s a breakdown of the most common filtering techniques:
🔹 1. Basic Filtering with WHERE
SELECT *
FROM employees
WHERE department = 'Sales';
✅ Returns only employees in the Sales department.
🔹 2. Comparison Operators
=: equal!=or<>: not equal<,>,<=,>=
SELECT *
FROM employees
WHERE salary > 50000;
🔹 3. Filtering with AND / OR / NOT
SELECT *
FROM employees
WHERE department = 'Sales' AND salary > 50000;
SELECT *
FROM employees
WHERE department = 'Sales' OR department = 'Marketing';
SELECT *
FROM employees
WHERE NOT department = 'HR';
🔹 4. Range Filtering: BETWEEN
SELECT *
FROM employees
WHERE salary BETWEEN 40000 AND 60000;
🔹 5. Matching Multiple Values: IN
SELECT *
FROM employees
WHERE department IN ('Sales', 'Marketing', 'HR');
🔹 6. Pattern Matching: LIKE
%= any number of characters_= single character
SELECT *
FROM employees
WHERE name LIKE 'J%'; -- names starting with J
SELECT *
FROM employees
WHERE name LIKE '%son'; -- names ending with "son"
🔹 7. Filtering NULL Values
SELECT *
FROM employees
WHERE manager_id IS NULL; -- no manager assigned
🔹 8. Filtering After Aggregation: HAVING
HAVING is used with GROUP BY, because WHERE cannot filter aggregated results.
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > 50000;
