Cláusula IN do PostgreSQL

Clausula In Do Postgresql



Existem muitas cláusulas que você pode utilizar no PostgreSQL. A cláusula IN é uma dessas cláusulas e traz muitos benefícios quando você entende como usá-la, especialmente quando combinada com a cláusula WHERE. A cláusula IN funciona principalmente com a instrução SELECT para filtrar como você deseja que a consulta seja executada. Quando executada, a cláusula IN verifica a lista especificada para ver se ela corresponde aos critérios e gera os valores correspondentes.

Compreendendo como trabalhar com a cláusula IN do PostgreSQL

No PostgreSQL, você usa a cláusula IN com a cláusula WHERE para filtrar a saída verificando uma lista de valores, e o resultado é um valor booleano.

Esta é a sintaxe a ser usada:







valor IN (valor1, valor2, valor_n);

A sintaxe fornecida pega o valor e o compara com valor1, valor2 e valor_n. Em seguida, ele retorna um booleano se houver uma correspondência. A lista de valores a serem verificados pode ser de qualquer tipo literal, incluindo strings e números inteiros. Além disso, você pode criar uma subconsulta como uma instrução SELECT.



Vamos discutir as diferentes maneiras de usar o operador PostgreSQL IN.



1. Trabalhando com uma subconsulta

Como mencionamos anteriormente, o valor a ser verificado pode ser uma subconsulta que extrai os valores usando uma instrução de consulta como SELECT. Dessa forma, você pode consultar uma tabela para verificar os valores de uma determinada coluna. Vamos usar a seguinte tabela para nosso exemplo:





Suponha que queiramos verificar todos os clientes cujo “order_id” possa ser qualquer um dos valores especificados na seção de consulta. Adicionamos o valor alvo como a primeira parte de nossa instrução e então usamos a cláusula WHERE com a cláusula IN para criar a consulta.



Veja como nossa consulta aparece:

O PostgreSQL verifica a coluna “order_id” na tabela “clientes” e retorna todos os registros cujo “order_id” corresponde a qualquer um dos que especificamos entre colchetes.

Para a primeira instância, usamos o caso de uma lista inteira de valores. Também podemos verificar as strings. Observe que se todas as strings especificadas não corresponderem ao valor de destino, nada será retornado. O exemplo a seguir contém algumas strings que não estão presentes em nossa tabela. Essas strings serão ignoradas e apenas as strings correspondentes serão exibidas na seguinte saída:

2. Trabalhando com IN(SELECT)

Às vezes, especificar manualmente a lista de valores pode não funcionar. Você pode optar por usar uma instrução SELECT para buscar uma lista de valores de sua tabela e usá-los para verificar o valor de destino. Adicionando a seguinte tabela ao nosso banco de dados, podemos combiná-la com a tabela “clientes” anterior para fazer nossa subconsulta:

Digamos que só queremos exibir os registros da tabela “pedidos” se o valor alvo (order_id) estiver na tabela “clientes”. Aqui, a coluna “customers.order_id” é nossa lista de valores e comparamos seus valores com os da coluna “orders.order_id”.

Neste caso, apenas três entradas correspondem à pesquisa e é isso que obtemos como saída para nossa cláusula IN(SELECT) PostgreSQL.

3. Trabalhando com a cláusula NOT IN PostgreSQL

Usando o comando anterior, podemos optar por exibir os outros valores que não correspondem ao valor alvo. Para isso, fazemos o oposto do que faz a cláusula IN. Portanto, negamos o comando NOT IN.

Veja como escrevemos nosso novo comando:

Observe que obtemos uma saída diferente daquela obtida no exemplo 2. Isso ocorre porque estamos trabalhando com a cláusula NOT IN em vez da cláusula IN.

Idealmente, você pode adicionar NOT sempre que quiser negar os resultados obtidos com a cláusula PostgreSQL IN. As aplicações são infinitas. Quando você deseja verificar os valores e ver se eles correspondem rapidamente, a cláusula IN é sua melhor amiga.

Conclusão

A cláusula IN funciona com a cláusula WHERE para verificar um valor alvo em relação a uma lista de valores. A cláusula IN retorna um booleano que confirma se o valor de destino corresponde à lista de valores que você especificou. Você pode especificar os valores como literais ou usar a instrução SELECT para criar uma subconsulta a ser usada. Fornecemos três exemplos de como você pode usar a cláusula PostgreSQL IN. Esperançosamente, isso lhe deu insights sobre como trabalhar com a cláusula PostgreSQL IN.