В этом руководстве вы узнаете, как использовать оператор 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;
Выход:
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;
Выход:
3) Использование оператора И с другими логическими операторами
В следующем примере показано, как использовать оператор AND с оператором OR:
SELECT * FROM production.products WHERE brand_id = 1 OR brand_id = 2 AND list_price > 1000 ORDER BY brand_id DESC;
Выход:
В этом примере мы использовали оба оператора 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;
Выход:
Краткое содержание
- Используйте оператор AND для объединения двух логических выражений.
- Оператор AND возвращает значение TRUE только в том случае, если оба выражения имеют значение TRUE.