Условие EXISTS и проверка существования набора значений в ORACLE SQL
Условие EXISTS используется только в одной ситуации — когда вы используете в запросе и подзапрос и хотите проверить, возвращает ли подзапрос записи. Если подзапрос возвращает хотя бы одну запись, то условие EXISTS вернет True, если нет — то False.
Пример применения этого условия может выглядеть так:
В этом примере мы возвращаем информацию о всех департаментах, для которых в таблице employees есть сотрудники.
Этот запрос можно переписать с помощью конструкции IN:
Как обычно, это условие EXISTS можно обращать при помощи NOT:
Те же возможности предусмотрены и для Microsoft SQL Server.
Условие EXISTS используется только в одной ситуации — когда вы используете в запросе и подзапрос и хотите проверить, возвращает ли подзапрос записи. Если подзапрос возвращает хотя бы одну запись, то условие EXISTS вернет True, если нет — то False.
Пример применения этого условия может выглядеть так:
SELECT * FROM departments d WHERE EXISTS
(SELECT * FROM employees e WHERE d.department_id = e.department_id);
(SELECT * FROM employees e WHERE d.department_id = e.department_id);
В этом примере мы возвращаем информацию о всех департаментах, для которых в таблице employees есть сотрудники.
Этот запрос можно переписать с помощью конструкции IN:
SELECT *
FROM users
WHERE users.ID IN (SELECT users_id
FROM users_res
WHERE users.ID = users_res.users_id AND users_res.ID > 1);
FROM users
WHERE users.ID IN (SELECT users_id
FROM users_res
WHERE users.ID = users_res.users_id AND users_res.ID > 1);
Как обычно, это условие EXISTS можно обращать при помощи NOT:
SELECT * FROM departments d WHERE NOT EXISTS
(SELECT * FROM employees e WHERE d.department_id = e.department_id);
(SELECT * FROM employees e WHERE d.department_id = e.department_id);
Те же возможности предусмотрены и для Microsoft SQL Server.