Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Пример 7. Использование диапазонов (BETWEEN/NOT BETWEEN) в условиях поиска




Перечислить всех сотрудников, которые родились в интервале с 1970 по 1981 года.

 

SELECT [Фамилия], [Имя], [Отчество], [Дата рождения]

FROM [Список сотрудников]

WHERE [Дата рождения] BETWEEN ‘01/01/1970’ AND ‘01/01/1981’

 

В этом запросе используются таблица [Список сотрудников] и предикат по полю [Дата рождения] с использованием ключевого слова BETWEEN. При выполнении запроса будет создана новая таблица, содержащая только те строки таблицы [Список сотрудников], в которых значение столбца [Дата рождения] больше ‘01/01/1970’ и меньше ‘01/01/1981’. Результаты выполнения запроса представлены в таблице 9.

 

Результат выполнения запроса из примера 7

Таблица 9.

Фамилия Имя Отчество Дата рождения
Иванов Иван Иванович 1.01.1970
Варежкина Наталья Николаевна 1.04.1975
Сидоров Иван Петрович 15.05.1980
Савельев Евгений Андреевич 24.07.1980

 

Существует также версия проверки диапазона значений, которая имеет противоположный смысл (NOT BETWEEN), В этом случае требуется, чтобы проверяемое значение лежало вне границ заданного диапазона.

Наличие ключевого слова BETWEEN и соответствующей проверки лишь незначительно повышает выразительную мощность языка SQL, поскольку те же результаты могут быть достигнуты с помощью выполнения двух обычных проверок.

В результате приведенный выше запрос можно представить следующим образом:

 

SELECT [Фамилия], [Имя], [Отчество], [Дата рождения]

FROM [Список сотрудников]

WHERE [Дата рождения] >=‘01/01/1970’ AND [Дата рождения] <=‘ ‘01/01/1981’

Однако многие полагают, что проверка принадлежности к диапазону с помощью ключевого слова BETWEEN является более простым способом записи условий выборки, чем обычные проверки.

 

Пример 8. Условия поиска с проверкой принадлежности к множеству (IN/NOT IN)

Требуется отыскать всех сотрудников, фамилии которых Иванов, Петров и Сидоров.

 

SELECT [Фамилия], [Имя], [Отчество]

FROM [Список сотрудников]

WHERE [Фамилия] IN (‘Иванов’, ‘Петров’, ‘Сидоров’);

 

Проверка принадлежности к множеству обеспечивается с помощью ключевого слова IN. При этом проверяется, соответствует ли результат вычисления выражения одному из значений в предоставленном списке — в нашем случае это строки ‘Иванов’, ‘Петров’, ‘Сидоров’.

Результаты выполнения запроса представлены в таблице 10. Существует также версия такой проверки, имеющая противоположный смысл (NOT IN), которая используется для отбора любых значений, кроме тех, которые указаны в представленном списке.

Как и оператор BETWEEN, оператор IN незначительно повышает выразительную мощность языка SQL — тот же самый запрос может быть представлен следующим образом:

 

SELECT [Фамилия], [Имя], [Отчество]

FROM [Список сотрудников]

WHERE [Фамилия] = ‘Иванов’ OR [Фамилия] = ‘Петров’ OR [Фамилия] = ‘Сидоров’;

 

Однако использование оператора IN представляет собой более эффективный способ записи условий поиска, особенно если набор допустимых значений достаточно велик.

 

Результат выполнения запроса из примера 8

Таблица 10.

Фамилия Имя Отчество
Иванов Иван Иванович
Петров Евгений Ильич
Сидоров Иван Петрович

 

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...