jueves, 11 de agosto de 2011

EXCEPT en SQL Server

EXCEPT

Una característica implementada desde la versión 2005, y una que siempre había estado buscado, una especie de "anti-join", que en lugar de unir las tablas las separe según ciertos parámetros.
Se puede considerar como la función contraria de UNION, ya que su función es devolver los registros de una consulta que no se encuentran en otra. Automáticamente devuelve los valores distintos.
La sintaxis es la siguiente:

SELECT [Col1], [Col2], ... [ColN]

FROM [Tabla1]

EXCEPT

SELECT [Col1], [Col2], ... [ColN]

FROM [Tabla2]
Ejemplo: Si queremos obtener una lista de productos que no han sido vendidos:

SELECT SKU

FROM  Productos

EXCEPT 

SELECT SKU

FROM  Ventas
EXCEPT, como unión, tiene como regla que las consultas comparadas deben tener el mismo número de columnas y los mismos tipos de datos (o por lo menos, los tipos de datos sean comparables) en el mismo orden.
Y también como UNION, puede ser utilizado con más de dos consultas.

No hay comentarios:

Publicar un comentario