GuilleSQL :: Microsoft SQL Server, SSIS, y más !! Destroy On Sight - Listen Up !!

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 Oct 2007
  195 usuarios registrados
  57069 pageloads/mes
  Ranking Alexa 962623



Archivo

Agosto de 2010 (1)
Julio de 2010 (3)
Mayo de 2010 (5)
Abril de 2010 (6)
Marzo de 2010 (8)
Febrero de 2010 (3)
Enero de 2010 (1)
Diciembre de 2009 (9)
Noviembre de 2009 (14)
Octubre de 2009 (2)
Septiembre de 2009 (8)
Agosto de 2009 (2)
Julio de 2009 (10)
Junio de 2009 (9)
Mayo de 2009 (10)
Abril de 2009 (9)
Marzo de 2009 (3)
Febrero de 2009 (2)
Enero de 2009 (3)
Noviembre de 2008 (2)
Octubre de 2008 (2)
Septiembre de 2008 (2)
Agosto de 2008 (5)
Julio de 2008 (5)
Junio de 2008 (1)
Mayo de 2008 (3)
Abril de 2008 (2)
Marzo de 2008 (2)
Febrero de 2008 (2)
Enero de 2008 (5)
Noviembre de 2007 (2)
Octubre de 2007 (2)






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