INTERSECT es otro de los operadores de conjunto de SQL que permite trabajar con dos tablas similares (mismo número de campos y del mismo tipo de datos cada campo) y permite hacer operaciones de conjuntos. En el caso de INTERSECT se trata de la intersección de dos conjuntos de la siguiente manera
Intersección de tablas
El uso de INTERSECT entre dos conjuntos de datos regresa los registros que están en el primer conjunto de datos que también están en el segundo conjunto de datos. Trabajaremos con el siguiente caso de prueba, con las tablas A, B y C (es el mismo conjunto de tablas que se utilizó en la explicación del UNION y UNION ALL).
Ejemplo de INTERSECT
En este caso, si se realiza la intersección entre la tabla A y la tabla B, por medio del siguiente query
SELECT * FROM a
INTERSECT
SELECT * FROM b;
El resultado es el siguiente
Como puede observarse, solo se regresa un registro, que corresponde al único registro que sus tres campos son exactamente iguales tanto en la tabla A como en la tabla B.
Plan de ejecución
Para poder realizar o ejecutar el INTERSECT, 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. En el caso de SQL Server este plan de ejecución puede verificarse fácilmente y se obtiene lo siguiente.