• Saltar a la navegación principal
  • Saltar al contenido principal

DBA dixit

Recursos en línea para el administrador y el desarrollador de bases de datos

  • Lo básico
  • SQL
  • Administración
  • Herramientas
  • Buenas prácticas
  • Performance & Tuning
Usted está aquí: Inicio / SQL / EXCEPT en SQL

EXCEPT en SQL

30/07/2021 by DBA

EXCEPT en SQL

EXCEPT es otro de los operadores de conjuntos en SQL que permite trabajar con dos conjuntos de datos y regresa un tercer conjunto de datos que contenga los registros que si están en el primer conjunto de datos, pero no en el segundo.

Siguiendo con el ejemplo utilizado tanto en el UNION/UNION ALL como en el INTERSECT, utilizaremos las siguientes tablas.

3 tablas de prueba para el UNION y el UNION ALL

De esta manera, el siguiente comando

SELECT * FROM a
EXCEPT
SELECT * FROM b;

contendrá todos los registros de A, excepto los que se encuentran duplicados en B.

Ejemplo de EXCEPT

En este caso, a diferencia del UNION/UNION ALL y de INTERSECT el orden de los conjuntos si altera el resultado, de tal manera que cambiando las tablas del query anterior de la siguiente manera

SELECT * FROM b
EXCEPT
SELECT * FROM a;

Se obtiene un resultado diferente, ya que el EXCEPT siempre tomará como base el primer conjunto de datos y «restará» los que se encuentran en el segundo.

Nuevo ejemplo de INTERSECT, intercambiando tablas

Plan de ejecución

Para poder realizar o ejecutar el EXCEPT, el motor de bases de datos debe recorrer cada uno de los registros de una tabla y verificar si existe un registro exactamente igual en la segunda tabla para eliminarlo del resultado final. En el caso de SQL Server este plan de ejecución puede verificarse fácilmente y se obtiene lo siguiente.

Plan de ejecución de un EXCEPT

Publicado en: Lo básico, SQL

  • Lo básico
  • SQL
  • Administración
  • Herramientas
  • Buenas prácticas
  • Performance & Tuning

Copyright © 2023 · Wellness Pro on Genesis Framework · WordPress · Acceder