Pular para o conteúdo principal
A cláusula EXCEPT retorna apenas as linhas produzidas pela primeira consulta e não pela segunda.
  • Ambas as consultas devem ter o mesmo número de colunas, na mesma ordem e com o mesmo tipo de dado.
  • O resultado de EXCEPT pode conter linhas duplicadas. Use EXCEPT DISTINCT se isso não for desejável.
  • Várias cláusulas EXCEPT são executadas da esquerda para a direita quando os parênteses não são especificados.
  • O operador EXCEPT tem a mesma prioridade que a cláusula UNION e prioridade menor que a cláusula INTERSECT.

Sintaxe

A condição pode ser qualquer expressão, dependendo dos seus requisitos. Além disso, EXCEPT() pode ser usado para excluir colunas de um resultado na mesma tabela, como no BigQuery (Google Cloud), usando a seguinte sintaxe:

Exemplos

Os exemplos desta seção demonstram o uso da cláusula EXCEPT.

Filtrando números usando a cláusula EXCEPT

Aqui está um exemplo simples que retorna os números de 1 a 10 que não estão entre 3 e 8:
Query
Response

Excluindo colunas específicas com EXCEPT()

EXCEPT() pode ser usado para excluir rapidamente colunas de um resultado. Por exemplo, se quisermos selecionar todas as colunas de uma tabela, exceto algumas colunas específicas, como mostrado no exemplo abaixo:
Query
Response

Usando EXCEPT e INTERSECT com dados de criptomoedas

EXCEPT e INTERSECT muitas vezes podem ser usados de forma intercambiável, com lógicas booleanas diferentes, e ambos são úteis quando você tem duas tabelas que compartilham uma coluna (ou colunas). Por exemplo, suponha que tenhamos alguns milhões de linhas de dados históricos de criptomoedas contendo preços de negociação e volume:
Query
Response
Agora, suponha que temos uma tabela chamada holdings que contém uma lista das criptomoedas que possuímos, juntamente com a quantidade de moedas:
Query
Podemos usar EXCEPT para responder a uma pergunta como “Quais moedas que temos nunca foram negociadas abaixo de US$ 10?”:
Query
Response
Isso significa que, das quatro criptomoedas que possuímos, apenas Bitcoin nunca caiu abaixo de $10 (com base nos dados limitados que temos aqui neste exemplo).

Usando EXCEPT DISTINCT

Observe que, na consulta anterior, havia várias posições em Bitcoin no resultado. Você pode adicionar DISTINCT a EXCEPT para eliminar linhas duplicadas do resultado:
Query
Response
Veja também
Última modificação em 19 de junho de 2026