Предикат уникальности
Функция
Определение условия отсутствия дубликатов в результате запроса.
Спецификация
<предикат уникальности>
::=[NOT] UNIQUE запрос сравнения
Общие правила
-
Предикат возвращает значение
TRUEв том и только в том случае, когда в таблице-результате<запроса выборки>отсутствуют какие-либо две записи, одна из которых является дубликатом другой. В противном случае значение предиката –FALSE.SELECT count(*) FROM Auto WHERE NOT UNIQUE (values('RED'), ('GREEN')); | 0|SELECT count(*) FROM Auto WHERE NOT UNIQUE (values('RED'), ('RED')); | 1000|
Пример
Найти номера отделов, в которых есть однофамильцы:
select distinct "Номер отдела"
from "Структура организации"
where not unique (select "Фамилия"
from "Штатное расписание"
where "Штатное расписание"."Номер отдела" =
"Структура организации"."Номер отдела");