Sumário: neste tutorial, aprenderá como utilizar o PostgreSQL EXISTS operador para testar a existência de filas numa subconsulta.

Introdução ao operador PostgreSQL EXISTS

O operador EXISTS operador é um operador booleano que testa a existência de filas numa subconsulta.

O seguinte ilustra a sintaxe do EXISTS operador:

EXISTS (subquery)

O EXISTS aceita um argumento que é uma subconsulta.

Se a subconsulta retornar pelo menos uma linha, o resultado de EXISTS é verdadeiro. Caso a subconsulta não devolva nenhuma linha, o resultado é de EXISTS é falso.

O operador EXISTS é frequentemente utilizado com a subconsulta correlacionada.

O resultado de EXISTS operador depende se alguma linha devolvida pela subconsulta, e não do conteúdo da linha. Portanto, as colunas que aparecem no SELECT cláusula da subconsulta não são importantes.

Por este motivo, a convenção de codificação comum é escrever EXISTS na seguinte forma:

Nota que se a subconsulta retornar NULL, o resultado de EXISTS é verdadeiro.

Exemplos de EXISTÊNCIAS do PostgreSQL

Usaremos as seguintes tabelas customere payment na base de dados da amostra para a demonstração:

customer and payment tables

A) Encontrar clientes que tenham pelo menos um pagamento cujo montante seja superior a 11.

A seguinte declaração devolve os clientes que tenham pago pelo menos um aluguer com um montante superior a 11:

SELECT first_name, last_nameFROM customer cWHERE EXISTS (SELECT 1 FROM payment p WHERE p.customer_id = c.customer_id AND amount > 11 )ORDER BY first_name, last_name;

A seguinte declaração devolve o seguinte resultado:

Neste exemplo, para cada cliente na tabela customer, a subconsulta verifica a tabela payment se esse cliente fez pelo menos um pagamento (p.customer_id = c.customer_id) e o montante é superior a 11 ( amount > 11)

B) NÃO EXISTE exemplo

O NOT operador nega o resultado do EXISTS operador. O NOT EXISTS é oposto a EXISTS. Significa que se a subconsulta não retorna nenhuma linha, o NOT EXISTS retorna verdadeiro. Se a subconsulta retornar uma ou mais linhas, o NOT EXISTS retorna falso.

O exemplo seguinte retorna clientes que não tenham efectuado qualquer pagamento superior a 11.

SELECT first_name, last_nameFROM customer cWHERE NOT EXISTS (SELECT 1 FROM payment p WHERE p.customer_id = c.customer_id AND amount > 11 )ORDER BY first_name, last_name;

Aqui está a saída:

Exemplo de PostgreSQL NÃO EXISTente

C) EXISTS e NULL

se a subconsulta regressar NULLEXISTS regressa verdadeiro. Ver o seguinte exemplo:

SELECTfirst_name,last_nameFROMcustomerWHEREEXISTS( SELECT NULL )ORDER BYfirst_name,last_name;
Code language: SQL (Structured Query Language) (sql)

Neste exemplo, a subconsulta retornou NULL, portanto, a consulta retornou todas as linhas da tabela customer.

PostgreSQL EXISTE com exemplo NULL

Neste tutorial, aprendeu a utilizar o PostgreSQL EXISTS para testar a existência de linhas na subconsulta.

  • Este tutorial foi útil ?
  • Sim Não
  • Deixe uma resposta

    O seu endereço de email não será publicado. Campos obrigatórios marcados com *