Составители:
Рубрика:
Алгоритм работы запроса можно пояснить следующим образом:
"В цикле для каждой i-й строки таблицы РАБОТЫ (рис. 2.8), выделить значение
Ид_Сотр, если и только если это значение не входит в некоторую строку, скажем, j той
же таблицы, а значение столбца Ид_Вида в строке j не равно его значению в
строке i".
5.3.4. Запросы, использующие EXISTS
Квантор EXISTS (существует) - понятие, заимствованное из формальной логики. В
языке SQL предикат с квантором существования представляется выражением EXISTS
(SELECT * FROM ...).
Такое выражение считается истинным только тогда, когда результат вычисления
"SELECT * FROM ..." является непустым множеством, т.е. когда существует какая-либо
запись в таблице, указанной во фразе FROM подзапроса, которая удовлетворяет условию
WHERE подзапроса.
Слово EXISTS неформально обозначает отбор только
тех записей, для которых
вложенный запрос возвращает только одно или более значений. Например, оператор:
SELECT Ид_Сотр, Фамилия, Имя, Год_ Рожд, Пол
FROM Сотрудник p1
WHERE EXISTS (SELECT Ид_Сотр, Год_ Рожд FROM Сотрудник P2
WHERE (p1.Год_Рожд = p2.Год_Рожд) AND (p1.Ид_Сотр != p2.Ид_Сотр));
Вернет список сотрудников, которые имеют хотя бы одного сверстника.
Ид_Сотр Фамилия Имя Год_рожд. Пол
1 Иванов Иван 1949 М
2 Петров Иван 1949 М
3 Сидоров Петр 1947 М
6 Иванова Вера 1970 Ж
7 Петрова Нина 1970 Ж
8 Сидрова Ада 1970 Ж
11 Попов Михаил 1947 М
13 Иванов Иван 1980 М
14 Яковлев Иван 1980 М
Рис. 5.21. Сотрудники, имеющие сверстников
Имеется также ключевое слово SINGULAR, которое означает отбор только тех
записей, для которых вложенный запрос возвращает только одно значение.
Например, оператор
SELECT Ид_Сотр, Фамилия, Год_Рожд
FROM Сотрудник p1
Страницы
- « первая
- ‹ предыдущая
- …
- 123
- 124
- 125
- 126
- 127
- …
- следующая ›
- последняя »
