Предложение IN PostgreSQL

Predlozenie In Postgresql



В PostgreSQL можно использовать множество предложений. Предложение IN является одним из таких предложений, и оно имеет множество преимуществ, если вы понимаете, как его использовать, особенно в сочетании с предложением WHERE. Предложение IN работает в основном с оператором SELECT, чтобы отфильтровать то, как вы хотите, чтобы запрос выполнялся. При выполнении предложение IN проверяет указанный список на соответствие критериям и выводит соответствующие значения.

Понимание того, как работать с предложением IN PostgreSQL

В PostgreSQL вы используете предложение IN с предложением WHERE для фильтрации вывода путем проверки списка значений, и результатом является логическое значение.

Вот синтаксис, который можно использовать:







значение IN (значение1, значение2, значение_n);

Данный синтаксис принимает значение и сравнивает его со значениями value1, value2 и value_n. Затем он возвращает логическое значение, если есть совпадение. Список значений для проверки может иметь любой литеральный тип, включая строки и целые числа. Кроме того, вы можете создать подзапрос, например, оператор SELECT.



Давайте обсудим различные способы использования оператора PostgreSQL IN.



1. Работа с подзапросом

Как мы упоминали ранее, значением для проверки может быть подзапрос, который извлекает значения с помощью оператора запроса, такого как SELECT. Таким образом, вы можете запросить таблицу, чтобы проверить значения данного столбца. Для нашего примера воспользуемся следующей таблицей:





Предположим, мы хотим проверить всех клиентов, у которых «order_id» может быть любым из значений, указанных в разделе запроса. Мы добавляем целевое значение в качестве первой части нашего оператора, а затем используем предложение WHERE с предложением IN для создания запроса.



Вот как выглядит наш запрос:

PostgreSQL проверяет столбец «order_id» в таблице «customers» и возвращает все записи, у которых «order_id» соответствует любому из тех, которые мы указали в скобках.

В первом случае мы использовали случай целочисленного списка значений. Мы также можем проверить строки. Обратите внимание: если все указанные вами строки не соответствуют целевому значению, ничего не возвращается. Следующий пример содержит некоторые строки, которых нет в нашей таблице. Такие строки будут пропущены, и в следующем выводе будут отображаться только соответствующие строки:

2. Работа с IN(SELECT)

Иногда указание списка значений вручную может не сработать. Вы можете использовать оператор SELECT для получения списка значений из вашей таблицы и использования его для проверки целевого значения. Добавив следующую таблицу в нашу базу данных, мы можем объединить ее с предыдущей таблицей «клиенты», чтобы создать подзапрос:

Допустим, мы хотим отображать записи из таблицы «заказы» только в том случае, если целевое значение (order_id) находится в таблице «клиенты». Здесь столбец «customers.order_id» — это наш список значений, и мы сверяем его значения со значениями в столбце «orders.order_id».

В этом случае только три записи соответствуют запросу, и именно это мы получаем в качестве вывода для нашего предложения IN(SELECT) PostgreSQL.

3. Работа с предложением NOT IN PostgreSQL

Используя предыдущую команду, мы можем выбрать отображение других значений, которые не соответствуют целевому значению. Для этого мы делаем противоположное тому, что делает предложение IN. Следовательно, мы отрицаем команду быть НЕ ВХОДЯЩИМ.

Вот как мы пишем нашу новую команду:

Обратите внимание, что мы получаем другой результат, чем тот, который мы получили в примере 2. Это потому, что мы работаем с предложением NOT IN вместо предложения IN.

В идеале вы можете добавлять NOT всякий раз, когда хотите инвертировать результаты, полученные с помощью предложения PostgreSQL IN. Приложения бесконечны. Если вы хотите быстро проверить значения и найти совпадения, предложение IN — ваш лучший друг.

Заключение

Предложение IN работает вместе с предложением WHERE для проверки целевого значения по списку значений. Предложение IN возвращает логическое значение, которое подтверждает, соответствует ли целевое значение указанному вами списку значений. Вы можете указать значения как литералы или использовать оператор SELECT для создания подзапроса, который будет использоваться. Мы привели три примера использования предложения IN PostgreSQL. Надеемся, это дало вам представление о том, как работать с предложением IN PostgreSQL.