INTERSECT y EXCEPT

Combina los resultados de dos consultas: conserva las filas que están en ambas (INTERSECT) o solo en la primera (EXCEPT).

Sintaxis

query1 INTERSECT query2;
query1 EXCEPT query2;
  • Ambas consultas necesitan el mismo número de columnas, con tipos compatibles.
  • Ambas eliminan duplicados. Añade ALL para conservarlos. Oracle llama MINUS a EXCEPT.

Ejemplo

SELECT city FROM customers EXCEPT SELECT 'Paris' ORDER BY city;

Todas las ciudades de los clientes excepto París.

Tablas usadas: customers. Pruébalo en una lección de abajo.

Errores comunes

  • EXCEPT no es simétrico: A EXCEPT B es distinto de B EXCEPT A.
  • Aquí los NULL se consideran iguales, a diferencia de una comparación normal.

Practícalo