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


Практическое руководство. Включение и исключение строк

Чтобы ограничить число строк, возвращаемых запросом 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)
    

См. также

Другие ресурсы

Конструирование запросов и представлений

Установка условий поиска

Выполнение запросов с помощью параметров