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:

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:

C) EXISTS e NULL
 se a subconsulta regressar NULLEXISTS regressa verdadeiro. Ver o seguinte exemplo:
Code language: SQL (Structured Query Language) (sql)SELECTfirst_name,last_nameFROMcustomerWHEREEXISTS( SELECT NULL )ORDER BYfirst_name,last_name;
 Neste exemplo, a subconsulta retornou NULL, portanto, a consulta retornou todas as linhas da tabela customer.

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