EXISTS SQL Server

В этом учебном пособии вы узнаете, как использовать условие EXISTS в SQL Server (Transact-SQL) с синтаксисом и примерами.

Описание

Условие EXISTS SQL Server (Transact-SQL) используется в сочетании с подзапросом и считается выполненным, если подзапрос возвращает хотя бы одну строку. Он может использоваться в операторах SELECT, INSERT, UPDATE или DELETE.

Синтаксис

Синтаксис условия EXISTS в SQL Server (Transact-SQL):

WHERE EXISTS ( subquery );

Параметры или аргументы

subquery - подзапрос - это оператор SELECT. Если подзапрос возвращает хотя бы одну запись в своем результирующем наборе, условие EXISTS будет оцениваться как true и условие EXISTS будет выполнено. Если подзапрос не возвращает никаких записей, предложение EXISTS будет оцениваться как false, а условие EXISTS не будет выполнено.

Примечание

  • Операторы SQL, которые используют условие EXISTS, очень неэффективны, так как подзапрос перезапускается для КАЖДОЙ строки в таблице внешнего запроса. Существуют более эффективные способы написания большинства запросов, которые не используют условие EXISTS.

Пример с оператором SELECT

Рассмотрим простой пример.
Ниже приведен оператор SELECT, в котором используется условие EXISTS:

Этот пример условия SQL Server EXISTS вернет все записи из таблицы employees, в которой есть по крайней мере одной записи в таблице contacts с соответствующими last_name и first_name.

Пример оператора SELECT с использованием NOT EXISTS

Условие SQL Server EXISTS также может быть объединено с оператором NOT.
Например:

Этот пример SQL Server EXISTS вернет все записи из таблицы employees, в которых нет записей в таблице contacts для соответствующих last_name и first_name.

Пример с оператором INSERT

Ниже приведен пример оператора INSERT, в котором используется условие EXISTS:

Пример с оператором UPDATE

Ниже приведен пример оператора UPDATE, в котором используется условие EXISTS:

Пример с оператором DELETE

Ниже приведен пример оператора DELETE, в котором используется условие EXISTS: