В этом руководстве вы узнаете, как использовать оператор OR SQL Server для объединения двух логических выражений.
Введение в оператор OR SQL Server
SQL Server OR — это логический оператор, позволяющий объединять два булевых выражения. Он возвращает TRUE, когда любое из условий оценивается как TRUE.
Ниже показан синтаксис оператора OR:
boolean_expression OR boolean_expression
В этом синтаксисе логическое_выражение — это любое допустимое логическое выражение, которое может быть оценено как истинное, ложное или неизвестное.
В следующей таблице показаны результаты оператора ИЛИ при объединении ИСТИНА, ЛОЖЬ и НЕИЗВЕСТНО:
| истинный | ЛОЖЬ | НЕИЗВЕСТНЫЙ | |
|---|---|---|---|
| истинный | истинный | истинный | истинный |
| ЛОЖЬ | истинный | ЛОЖЬ | НЕИЗВЕСТНЫЙ |
| НЕИЗВЕСТНЫЙ | истинный | НЕИЗВЕСТНЫЙ | НЕИЗВЕСТНЫЙ |
При использовании нескольких логических операторов в выражении SQL Server всегда оценивает операторы OR после операторов AND. Но вы можете использовать скобки(), чтобы изменить порядок оценки.
Примеры оператора OR для SQL Server
Мы будем использовать следующую таблицу production.roducts из примера базы данных.

1) Пример простого оператора OR SQL Server
В следующем примере оператор OR используется для поиска продуктов, цена по прейскуранту которых меньше 200 или больше 6000:
SELECT
product_name,
list_price
FROM
production.products
WHERE
list_price 6000
ORDER BY
list_price;

2) Использование нескольких операторов ИЛИ
В следующем операторе используются несколько операторов ИЛИ для поиска продуктов, идентификатор бренда которых равен 1, 2 или 4:
SELECT
product_name,
brand_id
FROM
production.products
WHERE
brand_id = 1
OR brand_id = 2
OR brand_id = 4
ORDER BY
brand_id DESC;

Вы можете заменить несколько операторов OR оператором IN, как показано в следующем запросе:
SELECT
product_name,
brand_id
FROM
production.products
WHERE
brand_id IN(1, 2, 3)
ORDER BY
brand_id DESC;
3) Объединение оператора ИЛИ с оператором И
В следующем примере показано, как объединить оператор ИЛИ с оператором И в одном выражении:
SELECT
product_name,
brand_id,
list_price
FROM
production.products
WHERE
brand_id = 1
OR brand_id = 2
AND list_price > 500
ORDER BY
brand_id DESC,
list_price;

В этом примере мы использовали оба оператора OR и AND. Как всегда, SQL Server сначала оценил оператор AND. Поэтому запрос вернул продукты, идентификатор бренда которых равен 2, а цена по прейскуранту больше 500, или продукты, идентификатор бренда которых равен 1.
Чтобы найти продукты, идентификатор бренда которых равен 1 или 2, а цена по прейскуранту превышает 500, используйте скобки, как показано в следующем запросе:
SELECT
product_name,
brand_id,
list_price
FROM
production.products
WHERE
(brand_id = 1 OR brand_id = 2)
AND list_price > 500
ORDER BY
brand_id;

Краткое содержание
- Используйте оператор OR SQL Server для объединения двух логических выражений.
- Оператор ИЛИ возвращает ИСТИНА, если одно из выражений имеет значение ИСТИНА.
- По умолчанию SQL Server оценивает операторы OR после операторов AND в том же выражении. Но вы можете использовать скобки(), чтобы изменить порядок оценки.




