Предикат существования
Функция
Определение проверки на пустое множество значений.
Спецификация
<предикат существования>
::=
[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 );