Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD_KL_2010_14.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
28.97 Mб
Скачать

Проверка на принадлежность диапазону

Предикат BETWEEN A AND B – принимает значения между A и B. Предикат истинен, когда сравниваемое значение попадает в заданный диапазон, включая границы диапазона. Одновременно в стандарте задан и противоположный предикат Not Between A and B, который истинен только тогда, когда сравниваемое значение не попадает в заданный интервал, включая его границы.

В условии поиска можно указать, что некоторое значение должно находиться в интервале между значениями:

<проверяемое выражение> [NOT] BETWEEN <A> AND <B>

Оператор BETWEEN ... AND проверяет, находится ли проверяемое выражение между двумя заданными значениями A и B. При этом типы данных выражений проверяемое выражение, A и B должны быть сравнимыми.

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

Пример: вывести сведения обо всех заказах, сделанных между 1 и 31 октябрем 1989 года.

SELECT ID_ORDER, DATE_ORDER, ID_MFR, ID_PRD

FROM ZAKAZY

WHERE DATE_ORDER BETWEEN `01-OCT-89` AND `31-OCT-89`

В результате выполнения этого запроса получаем таблицу

ID_ORDER

DATE_ORDER

ID_MFR

ID_PRD

112961

17.10.89

УАЗ

2А34

113888

21.10.89

ВАЗ

41234

122777

29.10.89

ПМЗ

4Е45М

Следует помнить, что проверку на принадлежность диапазону можно выразить в виде двух операций сравнения.

Проверка на членство в множестве

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

В условии поиска можно указать, что некоторое значение должно совпадать с одним из значений заданного множества:

<проверяемое_выражение> [NOT] IN список_констант

Пример: вывести список служащих, которые работают в Инзе (22) и Твери (12)

SELECT FAMILY, NAME, QUOTA, SALES*

FROM SLUZHASCHIE

WHERE ID_OFC IN (22, 12)

В результате выполнения этого запроса получаем таблицу

FAMILY

NAME

QUOTA

SALES

Петров

Петр

$350 000.00

$367 991.00

Федоров

Федор

$350 000.00

$476 456.00

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

Проверку IN также можно выполнить через проверку на сравнение.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]