Skip to main content
eLearner.app
Module 1 · Lesson 3 of 43/57 in the course~10 min
Module lessons (3/4)

Filtering with WHERE

Often we do not need all the rows of a table, but only those that satisfy a certain condition. The WHERE clause filters rows based on a boolean expression:

SQL
SELECT <colonne>
FROM   <tabella>
WHERE  <condizione>;

The engine evaluates the condition one row at a time and keeps only those for which it returns TRUE.

Comparison operators

The most common ones are:

  • = equal, <> (or !=) not equal
  • <, <=, >, >=
  • BETWEEN a AND b — closed interval (a and b included)
  • IN (v1, v2, …) — membership in a list
  • LIKE 'patt%' — text matching with wildcard %

Text values are wrapped in single quotes: 'Milano'.

Combining conditions

You can combine multiple conditions with AND, OR and negate them with NOT. When mixing them, use parentheses for clarity:

SQL
WHERE department_id = 1
  AND (salary > 40000 OR hired_on < '2020-01-01');

Try it

Exercise#sql.m1.l3.e1
Attempts: 0Loading…

Extract first name (first_name), last name (last_name) and salary (salary) of the employees with a salary strictly greater than 40,000.

Loading editor…
Show hint

The condition you need is salary > 40000. Numbers do not require quotes.

Solution available after 3 attempts

Review exercise

Exercise#sql.m1.l3.e2
Attempts: 0Loading…

Extract first name (first_name) and last name (last_name) of the employees whose last name starts with the letter 'R'. Use LIKE with the % wildcard.

Loading editor…
Show hint

The pattern 'R%' means: strings that start with R followed by anything.

Solution available after 3 attempts