Логический оператор EXISTS в T-SQL. Описание и примеры

Привет, сегодня мы рассмотрим несколько примеров использования логического оператора EXISTS в языке T-SQL, Вы узнаете, что это за оператор, как он работает и где его можно использовать.

Оператор EXISTS в языке T-SQL

EXISTS – это логический оператор языка T-SQL, который принимает и обрабатывает вложенный SQL запрос (SELECT) с целью проверки существования строк. В качестве результата возвращает значения (Boolean):

  • TRUE – если вложенный запрос возвращает хотя бы одну строку;
  • FALSE – если вложенный запрос не возвращает строк.

Оператор EXISTS Вы можете использовать как в секции WHERE запроса SELECT, так и в условных конструкциях языка T-SQL, например, в IF.

Таким образом, если у Вас возникла необходимость проверить, возвращает ли SQL запрос хотя бы одну строку, а результат этой проверки использовать в другом запросе или SQL инструкции, Вы можете использовать оператор EXISTS, по опыту могу сказать, что в некоторых случаях это очень удобно.

Примечание! Инструкция SELECT во вложенном запросе не может содержать ключевое слово INTO.

Оператор EXISTS в языке T-SQL также поддерживает ключевое слово NOT (NOT EXISTS), в данном случае будет противоположная работа, т.е. будет TRUE, если вложенный запрос не возвращает никаких строк, и FALSE, если возвращает.

Заметка! Новичкам рекомендую посмотреть мой видеокурс по T-SQL для начинающих, в нем подробно рассмотрены все базовые конструкции языка T-SQL.

Пример использования EXISTS в секции WHERE

В первом примере давайте посмотрим, как можно использовать логический оператор EXISTS в запросе SELECT в секции WHERE.

В следующем SQL запросе мы запрашиваем данные из таблицы TestTable, но при условии, что в таблице TestTable2 есть записи.

  
   SELECT * FROM TestTable
   WHERE EXISTS (SELECT * FROM TestTable2)

Скриншот 2

Мы видим, что данные нам вывелись, следовательно, в таблице TestTable2 записи есть.

Пример использования EXISTS в условной конструкции IF

Оператор EXISTS можно использовать и в условной конструкции IF, например, следующим образом.

  
   IF EXISTS (SELECT * FROM TestTable)
        SELECT 'Вложенный запрос возвращает строки.' AS [Результат]

Скриншот 3

В этом примере мы сначала проверяем, есть ли записи в таблице TestTable, и если есть, то выполняем необходимое действие, я для примера просто посылаю запрос SELECT.

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

В данном случае давайте представим, что нам нужно сделать что-то, только в том случае, если в таблице TestTable отсутствуют определённые записи. Если Вы обратили внимание, в таблице TestTable нет записей с ProductId больше 3, поэтому давайте для примера будем использовать именно это условие, т.е. если таких записей не существует, выполним нужное нам действие.

  
   IF NOT EXISTS (SELECT * FROM TestTable 
                           WHERE ProductId > 3)
        SELECT 'Вложенный запрос не возвращает строк.' AS [Результат]

Скриншот 4

У меня все, удачи!

Понравилась статья? Поделиться с друзьями:
Заметки IT специалиста
Комментарии: 1
  1. Админ (автор)

    Приглашаю всех желающих пройти мои онлайн-курсы по изучению языка T-SQL – https://self-learning.ru/courses/t-sql
    На курсах используется моя авторская последовательная методика обучения и рассматриваются все конструкции языка SQL и T-SQL. Каждый курс включает огромное количество материалов: видео, текстовый материал, тесты, домашние задания, скрипты, а также сертификат о прохождении.
    На курсах Вы можете заниматься в комфортном для себя темпе не выходя из дома в любое удобное для Вас время.

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:
Нажимая на кнопку «Отправить комментарий», я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.