Except

Em PostgreSQL, a cláusula EXCEPT é usada para encontrar as linhas que estão presentes em uma consulta, mas não em outra consulta. Em outras palavras, ela retorna as linhas que estão no resultado da primeira consulta, mas não estão no resultado da segunda consulta. Assim como as cláusulas INTERSECT e UNION, as consultas dentro da cláusula EXCEPT também devem ter o mesmo número de colunas e os tipos de dados correspondentes nas colunas devem ser compatíveis.

Sintaxe básica:

SELECT coluna1, coluna2, ...
FROM tabela1
WHERE condição
EXCEPT
SELECT coluna1, coluna2, ...
FROM tabela2
WHERE condição;

Neste exemplo, a cláusula EXCEPT é usada para encontrar as linhas na tabela1 que não estão na tabela2, com base nas condições especificadas.

Exemplo prático:

Suponha que você tenha duas tabelas chamadas clientes_antigos e clientes_novos, e você deseja obter uma lista de todos os clientes que estão na tabela clientes_antigos mas não estão na tabela clientes_novos:

SELECT nome, email
FROM clientes_antigos
EXCEPT
SELECT nome, email
FROM clientes_novos;

Esta consulta retornará apenas os clientes cujas informações de nome e e-mail estão presentes na tabela clientes_antigos, mas não na tabela clientes_novos.

Assim como com as cláusulas INTERSECT e UNION, é importante notar que as consultas dentro da cláusula EXCEPT devem ter o mesmo número de colunas e os tipos de dados nas colunas correspondentes devem ser compatíveis.