В этом руководстве вы узнаете, как использовать предложение 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 для фильтрации строк на основе одного или нескольких условий.