Предикат существования
Функция
Определение проверки на пустое множество значений.
Спецификация
< предикат существования >
::=
[NOT] EXISTS (проверяемый запрос)
< проверяемый запрос >
::=
Общие правила
-
Результат
< предиката существования >
имеет значение «истина» (TRUE) только в том случае, если результат< проверяемого запроса >
не пуст, в противном случае возвращается значение «ложь» (FALSE).Примечание
Обычно предикат EXISTS используется в сочетании с внешними ссылками.
Примеры
-
select name from person where exists(select * from auto where personid=person.personid);
-
select name from person where exists(table auto where personid=person.personid);
-
select name from person where exists (values (100));
-
В таблице со столбцом типа int нужно узнать первое пропущенное по порядку значение, т.е. если в таблице есть строки: 1 5 2 7 8 10, запрос должен выдать в качестве ответа 3:
select min(a1.id+1) as answer from tab as a1 where not exists (select 1 from tab as a2 where a1.id +1 = a2.id );