Поделиться через


Включение или исключение строк (визуальные инструменты для баз данных)

Область применения: 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'  

Дополнительные сведения о сочетании условий поиска см. в следующих подразделах:

Примеры

Несколько примеров запросов с использованием различных операторов и критериев фильтрации строк.

  • Литерал . Текстовое, численное, логическое значение или значение даты. В следующем примере литерал используется для поиска всех сотрудников, работающих в Великобритании:

    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)  
    

См. также

Разделы по конструированию запросов и представлений (визуальные инструменты для баз данных)
Определение критериев поиска (визуальные инструменты для баз данных)
Запрос с параметрами (визуальные инструменты для баз данных)