В этом руководстве вы узнаете, как использовать оператор 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 в том же выражении. Но вы можете использовать скобки(), чтобы изменить порядок оценки.