The SQL OR Operator
The WHERE clause can contain one or more OR operators.
The OR operator is used to filter records based on more than one condition.
Note: The
ORoperator displays a record if any of the conditions are TRUE.
The following SQL selects all customers from Germany OR Spain:
Example
SELECT *
FROM Customers
WHERE Country = 'Germany' OR Country = 'Spain';
OR Syntax
<p><code class="sqlHigh">
SELECT <em>column1</em>,<em> column2, ...</em><br/>
FROM <em>table_name</em><br/>
WHERE <em>condition1</em> OR <em>condition2</em> OR <em>condition3 ...</em>;
</code></p>
Demo Database
Below is a selection from the Customers table used in the examples:
| CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
|---|---|---|---|---|---|---|
| 1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
| 2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
| 3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
| 4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
| 5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
At Least One Condition Must Be True
The following SQL selects all customers where City is "Berlin", OR CustomerName starts with the letter "G", OR Country is "Norway":
Example
SELECT * FROM Customers
WHERE City = 'Berlin'
OR CustomerName LIKE 'G%'
OR Country = 'Norway';
AND vs. OR
Note: The
ANDoperator displays a record if all the conditions are TRUE. TheORoperator displays a record if any of the conditions are TRUE.
Combining AND and OR
You can also combine AND and OR operators.
The following SQL selects all customers from Spain that starts with a "G" or an "R" (make sure to use parenthesis to get the correct result):
Example
SELECT * FROM Customers
WHERE Country = 'Spain'
AND (CustomerName LIKE 'G%' OR CustomerName LIKE 'R%');
Without parenthesis, the SQL above will return all customers from Spain that starts with a "G", plus all customers that starts with an "R", regardless of the country value:
Example
SELECT * FROM Customers
WHERE Country = 'Spain'
AND CustomerName LIKE 'G%' OR CustomerName LIKE 'R%';