Saltar al contenido principal
La cláusula EXCEPT devuelve solo aquellas filas que resultan de la primera consulta y no de la segunda.
  • Ambas consultas deben tener el mismo número de columnas, en el mismo orden y con el mismo tipo de dato.
  • El resultado de EXCEPT puede contener filas duplicadas. Use EXCEPT DISTINCT si esto no es deseable.
  • Varias cláusulas EXCEPT se ejecutan de izquierda a derecha si no se especifican paréntesis.
  • El operador EXCEPT tiene la misma prioridad que la cláusula UNION y menor prioridad que la cláusula INTERSECT.

Sintaxis

La condición puede ser cualquier expresión, según sus necesidades. Además, EXCEPT() puede usarse para excluir columnas del resultado en la misma tabla, como es posible en BigQuery (Google Cloud), con la siguiente sintaxis:

Ejemplos

Los ejemplos de esta sección muestran cómo usar la cláusula EXCEPT.

Filtrar números con la cláusula EXCEPT

Aquí tienes un ejemplo sencillo que devuelve los números del 1 al 10 que no pertenecen al conjunto de números del 3 al 8:
Query
Response

Excluir columnas específicas con EXCEPT()

EXCEPT() puede usarse para excluir rápidamente columnas de un resultado. Por ejemplo, si queremos seleccionar todas las columnas de una tabla excepto algunas columnas específicas, como se muestra en el ejemplo siguiente:
Query
Response

Uso de EXCEPT e INTERSECT con datos de criptomonedas

EXCEPT e INTERSECT a menudo pueden usarse de forma indistinta con distinta lógica booleana, y ambos son útiles si tiene dos tablas que comparten una columna (o varias). Por ejemplo, supongamos que tenemos unos millones de filas de datos históricos de criptomonedas que contienen precios de transacción y volumen:
Query
Response
Ahora supongamos que tenemos una tabla llamada holdings que contiene una lista de las criptomonedas que poseemos, junto con la cantidad de monedas:
Query
Podemos usar EXCEPT para responder a una pregunta como “¿Qué monedas que tenemos nunca han cotizado por debajo de $10?”:
Query
Response
Esto significa que, de las cuatro criptomonedas que tenemos, solo Bitcoin nunca ha bajado de $10 (según los datos limitados que tenemos aquí en este ejemplo).

Uso de EXCEPT DISTINCT

Ten en cuenta que en la consulta anterior había varias tenencias de Bitcoin en el resultado. Puedes añadir DISTINCT a EXCEPT para eliminar las filas duplicadas del resultado:
Query
Response
Vea también
Última modificación el 19 de junio de 2026