РУКОВОДСТВО ПО РЕЛЯЦИОННОЙ СУБД DB2

ВЫБОРКА С ИСПОЛЬЗОВАНИЕМ IN (принадлежит)


Выдать детали, вес которых равен 12, 16 или 17:

SELECT                НОМЕР_ДЕТАЛИ, НАЗВАНИЕ, ЦВЕТ, ВЕС, ГОРОД

FROM                   P

WHERE                ВЕС IN (12, 16, 17);

Результат:

НОМЕР_ДЕТАЛИ

НАЗВАНИЕ

ЦВЕТ



ВЕС

ГОРОД

Р1

Р2

РЗ

Р5

Гайка

Болт

Винт

Кулачок

Красный

Зеленый

Голубой

Голубой

12

17

17

12

Лондон

Париж

Рим

Париж

Предикат IN является в действительности просто краткой записью предиката, представляющего собой последовательность отдельных сравнений, соединенных операторами OR (или). Предыдущее предложение SELECT эквивалентно следующему:

SELECT                НОМЕР_ДЕТАЛИ, НАЗВАНИЕ, ЦВЕТ, ВЕС, ГОРОД

FROM                   P

WHERE                ВЕС = 12

OR                        ВЕС = 16

OR                        ВЕС = 17;

Имеется в распоряжении также предикат NOT IN (не принадлежит), например предложение:

SELECT                НОМЕР_ДЕТАЛИ, НАЗВАНИЕ, ЦВЕТ, ВЕС, ГОРОД

FROM                   P

WHERE                ВЕС NOT IN (12, 16, 17);

дает результат:

НОМЕР_ДЕТАЛИ

НАЗВАНИЕ

ЦВЕТ

ВЕС

ГОРОД

Р4

Р6

Винт

Блюм

Красный

Красный

14

19

Лондон

Лондон

Подобно предикату IN предикат NOT IN может рассматриваться только как сокращенная запись другого предиката, который не использует NOT IN. Упражнение.

Запишите «развернутую форму» предложения из предшествующего примера.



Содержание раздела