Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Неделя 07 Лекция 2 (11).doc
Скачиваний:
2
Добавлен:
13.11.2019
Размер:
196.61 Кб
Скачать

11.5.3. Использование функции between.

В условие поиска можно указать, что некоторое значение (столбец или вычисленное значение выражения) должно находиться в интервале между значением1 и значением2:

<значение> [NOT] BETWEEN <значение1> AND <значение2>

Зарезервированное слово NOT инвертирует условие (значение не должно находиться в интервале между значением1 и значением2).

ПРИМЕР

Перечислите инвентарные номера книг, цена которых лежит в диапазоне от 20 до 60 гривень.

SELECT InventaryNumber, Cost

FROM BookInventaryNumbers

WHERE Cost BETWEEN 20 AND 60;

В данном примере результаты проверки будут положительными для всех книг, цена которых лежит в пределах от 20 до 60 гривень.

Результаты выполнения запроса представлены в таблица 11.11.

Таблица 11.11.

Code

FamilyNamе

Name

Patronymic

Job

Post

1

Иванов

Петр

Иванович

ДГУ, каф. ЭВТ

Ассистент

3

Ильин

Иван

Петрович

ДГУ, каф. физики

Доцент

5

Коршунова

Наталья

Юрьевна

ДГУ, каф.геоинфо рматики

Ассистент

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

SELECT InventaryNumber, Cost

FROM BookInventaryNumbers

WHERE Cost >= 20 AND Cost <=60;

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

11.5.4. Использование in (список значений).

Если нужно, чтобы значение какого-либо столбца (или результат вычисления некоторого выражения) совпадало с одним из дискретных значений, в условии поиска указывается предложение

<значение> [NOT] IN (<значение1> [, <значение2> ...])

Тогда в результирующий набор данных будут включены только те записи, для которых значение, стоящее слева от слова IN, равно одному из значений, указанных в списке (<значение1> [, <значение2> ...]).

ПРИМЕР

Используя таблицу PasportData, выведете код, серию и номер паспорта для лиц, проживающих в Донецке или Киеве.

SELECT Code, Series, Number, IssuePlace

FROM PasportData

WHERE IssuePlace IN (‘Донецк’, ‘Киев’);

Проверка вхождения результата вычисления выражения в заданное множество организуется с помощью ключевого слова IN. При этом проверяется, соответствует ли результат вычисления выражения одному из значений в предоставленном списке – в нашем случае это строки ‘Донецк’ и ‘Киев’.

Результаты выполнения запроса представлены в таблице 11.12.

Таблица 11.12.

Code

Series

Number

IssuePlace

4

АЕ

12300

Донецк

6

АЖ

01568

Киев

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

SELECT Code, Series, Number, IssuePlace

FROM PasportData

WHERE IssuePlace= ‘Донецк’ OR IssuePlace= ‘Киев’;

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