En ocasiones puede resultar de utilidad el uso de este tipo de operadores, de tal modo, que se pueda obtener la unión, la intersección o la diferencia de dos (o más) conjuntos de resultados.
Los operadores UNION y UNION ALL ya llevan tiempo en SQL Server. Por el contrario, los operadores EXCEPT e INTERSECT están disponibles desde SQL Server 2005. De este modo, se obtiene una alternativa a los operadores UNION/UNION ALL/MINUS/INTERSECT que ofrece ORACLE, sin tener que elaborar consultas alternativas mediante complejos JOINs y/o cláusulas NOT IN y EXISTS.
La sintaxis a utilizar es la siguiente: SELECT command {UNION | UNION ALL | INTERSECT | EXCEPT} SELECT command.
A continuación se explica cada uno de estos operadores:
- UNION. Devuelve los distintos valores resultados de la unión de la consulta de la izquierda y de la consulta de la derecha.
- UNION ALL. Devuelve los valores (incluyendo duplicados) resultados de la unión de la consulta de la izquierda y de la consulta de la derecha.
- EXCEPT. Devuelve los distintos valores de la consulta de la izquierda que NO se encuentran en la consulta de la derecha (es el equivalente al operador MINUS de ORACLE).
- INTERSECT. Devuelve los distintos valores de la consulta de la izquierda que TAMBIEN se encuentran en la consulta de la derecha.
Es interesante observar que los operadores UNION, EXCEPT e INTERSECT devuelven los distintos valores, esto es, omiten valores repetidos del conjunto de resultados devuelto. |