SQL Server Оператор ИЛИ

В этом руководстве вы узнаете, как использовать оператор 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;

SQL Server ИЛИ пример

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;

SQL Server OR с оператором AND

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

Автор статей, ИБ-специалист