miércoles, 3 de agosto de 2011

UNION: Unir dos o más consultas en SQL Server

UNION

La cáusula UNON nos permite unir dos o más consultas en un solo grupo de resultados. Para que funcione, todas las consultas tienen que tener la misma estructura en sus resultados: El mismo número de columnas, el mismo orden y el mismo tipo de datos en cada columna

Su sintaxis es la siguiente:

SELECT [Col1], [Col2], [Col3], ... [Coln]

FROM [Tabla1]

UNION {ALL}

SELECT [Col1], [Col2], [Col3],... [Coln]
FROM [Tabla2]

Ejemplo:

Tenemos la tabla StoreContact con la estructura

Customer_ID int
Contact_ID int
ContactType int
rowguid unique_identifier
ModifiedDate datetime


Y la tabla VendorContact con la estructura

Vendor_ID int
Contact_ID int
ContactType int
ModifiedDate datetime


Y las queremos unir en una sola consulta para obtener todos los registros de contactos en un solo conjunto de resultados. Procedemos:


SELECT Customer_ID, Contact_ID, ContactType, ModifiedDate
FROM StoreContact

UNION

SELECT Vendor_ID, Contact_ID, ContactType, ModifiedDate
FROM VendorContact


De esta manera, consultaremos los contactos en un solo conjunto de resultados. UNION puede seguirse utilizando para agregar más consultas de la misma manera, es decir, podríamos consultar conjuntamente, además de StoreContact y VendorContact, PersonContact y unirlos en la misma consulta.

La claúsula ALL sirve, como su nombre lo indica, para consultar todos los registros de todas las consultas unidas, ya que, por default, UNION consultará los registros distintos, como si declararamos la clausula DISTINCT.

No hay comentarios:

Publicar un comentario