Включение или исключение строк (визуальные инструменты для баз данных)
Область применения: SQL Server
Чтобы ограничить число строк, возвращаемых запросом SELECT, создают условия поиска или критерии фильтрации. В языке SQL условия поиска появляются в предложении инструкций WHERE или, если запрос статистический, в предложении HAVING.
Примечание.
Можно также использовать условия поиска, чтобы задать, какие строки будут изменены запросами обновления, вставки результатов и значений, удаления или создания таблиц.
При выполнении запроса ядро СУБД проверяет и применяет условия поиска к каждой строке таблиц, где осуществляется поиск. Если строка соответствует условиям, она включается в запрос. Например, условие поиска всех сотрудников в определенном регионе может быть таким:
region = 'UK'
Чтобы задать критерий включения строки в результат, можно применять несколько условий поиска. Например, следующий критерий состоит из двух условий поиска. Запрос включает строку в результирующий набор только в том случае, если она удовлетворяет обоим условиям.
region = 'UK' AND product_line = 'Housewares'
Эти условия можно комбинировать с помощью ключевых слов AND и OR. В предыдущем примере использовался AND. В следующем критерии, напротив, используется OR. Результирующий набор будет включать в себя все строки, удовлетворяющие любому из условий поиска или обоим:
region = 'UK' OR product_line = 'Housewares'
Можно даже комбинировать условия поиска по одному столбцу. Например, следующий критерий сочетает два условия поиска по столбцу region:
region = 'UK' OR region = 'US'
Дополнительные сведения о сочетании условий поиска см. в следующих подразделах:
Указание нескольких условий поиска для одного столбца (визуальные инструменты для баз данных)
Указание нескольких условий поиска для нескольких столбцов (визуальные инструменты для баз данных)
Объединение условий, если приоритет имеет оператор AND (визуальные инструменты для баз данных)
Объединение условий, если приоритет имеет оператор OR (визуальные инструменты для баз данных)
Примеры
Несколько примеров запросов с использованием различных операторов и критериев фильтрации строк.
Литерал . Текстовое, численное, логическое значение или значение даты. В следующем примере литерал используется для поиска всех сотрудников, работающих в Великобритании:
WHERE region = 'UK'
Ссылка на столбец . Сравнение значений одного столбца со значениями в другом. В следующем примере в таблице
products
ищутся все строки, где стоимость производства ниже стоимости доставки:WHERE prod_cost < ship_cost
Функция . Ссылка на функцию, которую серверная часть базы данных может разрешить для вычисления значения, использующегося в поиске. Это может быть функция, определенная сервером базы данных, или определяемая пользователем функция, возвращающая скалярное значение. В следующем примере ищутся все заказы, сделанные сегодня (функция GETDATE( ) возвращает текущую дату):
WHERE order_date = GETDATE()
NULL . В следующем примере в таблице
authors
ищутся все авторы, имя которых сохранено в файле:WHERE au_fname IS NOT NULL
Вычисление . Результат вычисления, в котором могут участвовать литералы, ссылки на столбцы и другие выражения. В следующем примере в таблице
products
ищутся все строки, где розничная цена в два раза превышает стоимость производства:WHERE sales_price > (prod_cost * 2)
См. также
Разделы по конструированию запросов и представлений (визуальные инструменты для баз данных)
Определение критериев поиска (визуальные инструменты для баз данных)
Запрос с параметрами (визуальные инструменты для баз данных)