В этом руководстве вы узнаете, как использовать предложение WHERE SQL Server для фильтрации строк, возвращаемых запросом.
- Введение в предложение WHERE SQL Server
- Примеры WHERE для SQL Server
- 1) Использование предложения WHERE с простым оператором равенства
- 2) Использование предложения WHERE с оператором AND
- 3) Использование WHERE для фильтрации строк с помощью оператора сравнения
- 4) Использование предложения WHERE для фильтрации строк, которые соответствуют любому из двух условий
- 5) Использование предложения WHERE для фильтрации строк со значением между двумя значениями
- 6) Использование предложения WHERE для фильтрации строк, имеющих значение в списке значений
- 7) Поиск строк, значения которых содержат строку
- Краткое содержание
Введение в предложение WHERE SQL Server
Оператор SELECT извлекает все строки из таблицы. Однако это часто не нужно, поскольку приложению может потребоваться обработать только подмножество строк в данный момент.
Чтобы извлечь строки, удовлетворяющие одному или нескольким условиям, используйте предложение WHERE в операторе SELECT.
Вот синтаксис предложения WHERE:
SELECT
select_list
FROM
table_name
WHERE
search_condition;
В этом синтаксисе search_condition — это логическое выражение или комбинация нескольких логических выражений. В SQL логическое выражение также известно как предикат.
В предложении WHERE вы указываете условие поиска для фильтрации строк, возвращаемых предложением FROM. Предложение WHERE возвращает только те строки, для которых search_condition оценивается как TRUE.
Обратите внимание, что SQL Server использует трехзначную логику предикатов, где логическое выражение может оцениваться как TRUE, FALSE или UNKNOWN. Предложение WHERE не вернет ни одной строки, которая приведет к тому, что предикат будет оцениваться как FALSE или UNKNOWN.
Примеры WHERE для SQL Server
Для демонстрации мы будем использовать таблицу production.products из образца базы данных.

1) Использование предложения WHERE с простым оператором равенства
В следующем запросе используется предложение WHERE для извлечения продуктов с идентификатором категории 1:
SELECT
product_id,
product_name,
category_id,
model_year,
list_price
FROM
production.products
WHERE
category_id = 1
ORDER BY
list_price DESC;
Выход:

2) Использование предложения WHERE с оператором AND
В следующем примере используется предложение WHERE для поиска продуктов, относящихся к категории с идентификатором 1 и модели 2018:
SELECT
product_id,
product_name,
category_id,
model_year,
list_price
FROM
production.products
WHERE
category_id = 1 AND model_year = 2018
ORDER BY
list_price DESC;
Выход:

В этом примере условие в предложении WHERE использует логический оператор AND для объединения двух условий.
3) Использование WHERE для фильтрации строк с помощью оператора сравнения
Следующий оператор находит продукты с розничной ценой более 300 и моделью 2018 года.
SELECT
product_id,
product_name,
category_id,
model_year,
list_price
FROM
production.products
WHERE
list_price > 300 AND model_year = 2018
ORDER BY
list_price DESC;
Выход:

4) Использование предложения WHERE для фильтрации строк, которые соответствуют любому из двух условий
Следующий запрос использует предложение WHERE для поиска продуктов, которые соответствуют одному из условий: цена по прейскуранту больше 3000 или модель 2018 года:
SELECT
product_id,
product_name,
category_id,
model_year,
list_price
FROM
production.products
WHERE
list_price > 3000 OR model_year = 2018
ORDER BY
list_price DESC;
Выход:

Обратите внимание, что предложение WHERE использует оператор OR для объединения условий.
5) Использование предложения WHERE для фильтрации строк со значением между двумя значениями
Следующий оператор находит продукты с ценами от 1899 до 1999,99:
SELECT
product_id,
product_name,
category_id,
model_year,
list_price
FROM
production.products
WHERE
list_price BETWEEN 1899.00 AND 1999.99
ORDER BY
list_price DESC;
Выход:
6) Использование предложения WHERE для фильтрации строк, имеющих значение в списке значений
В следующем примере оператор IN используется для поиска продуктов с ценой по прейскуранту 299,99, 466,99 или 489,99.
SELECT
product_id,
product_name,
category_id,
model_year,
list_price
FROM
production.products
WHERE
list_price IN(299.99, 369.99, 489.99)
ORDER BY
list_price DESC;
Выход:
7) Поиск строк, значения которых содержат строку
В следующем примере оператор LIKE используется для поиска продуктов, название которых содержит строку Cruiser:
SELECT
product_id,
product_name,
category_id,
model_year,
list_price
FROM
production.products
WHERE
product_name LIKE '%Cruiser%'
ORDER BY
list_price;
Выход:

Краткое содержание
- Используйте предложение WHERE SQL Server для фильтрации строк на основе одного или нескольких условий.






