Предикат IN
Синтаксис:
IN::=
<Проверяемое выражение> [NOT] IN (<подзапрос>)
| (<выражение для вычисления значения>,...)
Предикат IN определяет, будет ли значение проверяемого выражения обнаружено в наборе значений, который либо явно определен, либо получен с помощью табличного подзапроса. Здесь табличный подзапрос это обычный оператор SELECT, который создает одну или несколько строк для одного столбца, совместимого по типу данных со значением проверяемого выражения. Если целевой объект эквивалентен хотя бы одному из указанных в предложении IN значений, истинностное значение предиката IN будет равно TRUE. Если для каждого значения Х в предложении IN целевой объект <> X, истинностное значение будет равно FALSE. Если подзапрос выполняется, и результат не содержит ни одной строки (пустая таблица), предикат принимает значение FALSE. Когда не соблюдается ни одно из упомянутых выше условий, значение предиката равно UNKNOWN.
Пример 5.2.4
SELECT model, speed, hd
FROM PC
WHERE hd IN (10, 20);
[[ column ]] |
---|
[[ value ]] |
model | speed | hd |
---|---|---|
1233 | 750 | 20 |
1232 | 500 | 10 |
1232 | 450 | 10 |
1260 | 500 | 10 |
1233 | 800 | 20 |
Пример 5.2.5
SELECT model, speed, hd
FROM PC
WHERE hd IN (10, 20) AND
model IN (SELECT model
FROM product
WHERE maker = 'A'
);
[[ column ]] |
---|
[[ value ]] |
model | speed | hd |
---|---|---|
1233 | 750 | 20 |
1232 | 500 | 10 |
1232 | 450 | 10 |
1233 | 800 | 20 |
Рекомендуемые упражнения: 1, 5, 8, 23, 25, 27, 38, 57, 71, 80, 89, 90, 103, 127, 129