GuilleSQL :: Microsoft SQL Server, SSIS, y más !!

¿No encuentras lo que quieres? Prueba a Buscar con Google

SQL Server FAQ: ¿Qué operadores para combinar resultados de consultas existen en SQL Server? UNION/UNION ALL/EXCEPT/INTERSECT

{{ Si desea volver al INDICE de SQL Server FAQ :: Preguntas y Respuestas Frecuentes de SQL Server :: Manual SQL Server, haga click aquí }}


Este breve capítulo se limita a presentar los operadoes UNION, UNION ALL, INTERSECT, y EXCEPT. El motivo por el cual he decidido escribir este capítulo es debido, a que igual que mucha gente conoce los operadores UNION y UNION ALL, pocos conocen EXCEPT e INTERSECT. Más aún, aquellos que vienen de ORACLE, en ocasiones sienten nostalgia de su MINUS... bien, pues EXCEPT es equivalente al MINUS de ORACLE, e INTERSECT existe en ambos motores (SQL Server y ORACLE), al igual que UNION y UNION ALL.

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.




{{ Si desea volver al INDICE de SQL Server FAQ :: Preguntas y Respuestas Frecuentes de SQL Server :: Manual SQL Server, haga click aquí }}




[Fecha artículo: 09/01/2008]
[Estado artículo: Abierto]
[Autor: GuilleSQL]

Miembros de
Miembros de GITCA (Global IT Community Association)

Menu de Usuario
  Iniciar Sesión
  Registrarse
  Restablecer Contraseña
  Ventajas de Registrarse

Acerca de
  Contigo desde Nov 2007
  118 usuarios registrados
  42764 pageloads/mes
  Ranking Alexa 1257831






Esta información se proporciona "como está" sin garantías de ninguna clase, y no otorga ningún derecho.
This information is provided "AS IS" with no warranties, and confers no rights.

Copyright © 2007 GuilleSQL, todos los derechos reservados.
GuilleSQL.com y GuilleSQL.net son también parte de Portal GuilleSQL.

Visitas recibidas (Page Loads) en GuilleSQL (fuente: StatCounter):

screen resolution stats
Visitas