SQL-сервер И оператор

В этом руководстве вы узнаете, как использовать оператор AND SQL Server для объединения нескольких логических выражений.

Введение в оператор AND SQL Server

AND — это логический оператор, позволяющий объединить два булевых выражения. Он возвращает TRUE только тогда, когда оба выражения оцениваются как TRUE.

Ниже показан синтаксис оператора AND:

boolean_expression AND boolean_expression 

Логическое_выражение — это любое допустимое логическое выражение, которое может принимать значения ИСТИНА, ЛОЖЬ и НЕИЗВЕСТНО.

В следующей таблице показан результат объединения значений ИСТИНА, ЛОЖЬ и НЕИЗВЕСТНО с помощью оператора И:

истинный ЛОЖЬ НЕИЗВЕСТНЫЙ
истинный истинный ЛОЖЬ НЕИЗВЕСТНЫЙ
ЛОЖЬ ЛОЖЬ ЛОЖЬ ЛОЖЬ
НЕИЗВЕСТНЫЙ НЕИЗВЕСТНЫЙ ЛОЖЬ НЕИЗВЕСТНЫЙ

При использовании более одного логического оператора в выражении SQL Server всегда сначала оценивает операторы AND. Однако вы можете изменить порядок оценки, используя скобки().

Примеры оператора AND для SQL Server

Мы будем использовать следующую таблицу продуктов из образца базы данных:

1) Пример простого оператора AND для SQL Server

В следующем примере оператор AND используется для поиска продуктов с идентификатором категории 1 и ценой по прейскуранту больше 400:

SELECT 
  * 
FROM 
  production.products 
WHERE 
  category_id = 1 
  AND list_price > 400 
ORDER BY 
  list_price DESC;

Выход:

Пример оператора AND для SQL Server

2) Использование нескольких операторов AND SQL Server

В следующем операторе используется оператор AND для поиска продуктов, которые соответствуют всем следующим условиям: идентификатор категории равен 1, цена по прейскуранту больше 400 и идентификатор бренда равен 1:

SELECT 
  * 
FROM 
  production.products 
WHERE 
  category_id = 1 
  AND list_price > 400 
  AND brand_id = 1 
ORDER BY 
  list_price DESC;

Выход:

Пример SQL Server AND с несколькими операторами

3) Использование оператора И с другими логическими операторами

В следующем примере показано, как использовать оператор AND с оператором OR:

SELECT
    *
FROM
    production.products
WHERE
    brand_id = 1
OR brand_id = 2
AND list_price > 1000
ORDER BY
    brand_id DESC;

Выход:

Пример операторов AND и OR SQL Server

В этом примере мы использовали оба оператора OR и AND в условии предложения WHERE. SQL Server всегда сначала оценивает оператор AND. Таким образом, запрос извлекает продукты с идентификатором бренда 2 и ценой по прейскуранту больше 1000 или идентификатором бренда 1.

Чтобы получить продукты с идентификатором бренда 1 или 2 и ценой по прейскуранту более 1000, вы можете использовать скобки следующим образом:

SELECT
    *
FROM
    production.products
WHERE
   (brand_id = 1 OR brand_id = 2)
AND list_price > 1000
ORDER BY
    brand_id;

Выход:

Операторы SQL Server AND и OR со скобками

Краткое содержание

  • Используйте оператор AND для объединения двух логических выражений.
  • Оператор AND возвращает значение TRUE только в том случае, если оба выражения имеют значение TRUE.
Мирослав С.

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