SQL

¿Qué hace el operador Except en SQL?

Estrada Web Group
Estrada Web Group
¿Qué hace el operador Except en SQL?

Resumen: en este tutorial aprenderás a usar el operador EXCEPT de SQL Server que encuentra la diferencia entre dos consultas y el resultado regresa las filas que pertenecen únicamente a la primera consulta.

¿Qué hace el operador Except en SQL?

A diferencia del operador INTERSECT, el operador EXCEPT de SQL Server compara los resultados de dos consultas y devuelve las filas de la primera consulta y siempre y cuando no se encuentren en la segunda consulta. En otras palabras, EXCEPT resta el conjunto de resultados de una consulta de otra.

Introducción al operador EXCEPT de SQL Server

A continuación, se muestra la sintaxis de SQL Server EXCEPTO:

query_1
EXCEPT
query_2

Las reglas para combinar los conjuntos de resultados de dos consultas en la sintaxis anterior son las siguientes:

  • El número y orden de las columnas debe ser el mismo en ambas consultas.
  • Los tipos de datos de las columnas correspondientes deben ser iguales o compatibles.

La siguiente imagen muestra la operación EXCEPT de los dos conjuntos de resultados T1 y T2:
Except SQL Server


En esta ilustración:

  • El conjunto de resultados T1 incluye 1, 2 y 3.
  • El conjunto de resultados T2 incluye 2, 3 y 4.
  • El operador EXCEPT de T1 y T2 devuelve 1, que es la fila distinta del conjunto de resultados de T1 que no aparece en el conjunto de resultados de T2.

Ejemplos del operador EXCEPT de SQL Server

En los siguientes ejemplos aprenderás cómo usar el operador EXCEPT, consulta las siguientes tablas de productos y artículos de pedido de la base de datos de ejemplo:
para que sirve EXCEPT de SQL Server

A) Ejemplo del uso simple de EXCEPT

El siguiente ejemplo usa el operador EXCEPT para encontrar los productos que no tienen ventas:

SELECT    product_id
FROM    production.products
EXCEPT
SELECT    product_id
FROM    sales.order_items;


Resultado:

product_id
284
195
318
321
267
121
319
1
316
125
317
291
154
320

En este ejemplo, la primera consulta devuelve todos los productos. La segunda consulta devuelve los productos que tienen ventas. Por lo tanto, el conjunto de resultados incluye solo los productos que no tienen ventas.

B) Ejemplo del operador de EXCEPT con ORDER BY

Para ordenar el conjunto de resultados creado por el operador EXCEPT, debes agregar la cláusula ORDER BY en la última consulta. Por ejemplo, el siguiente ejemplo encuentra los productos que no tuvieron ventas y ordena los productos por su id en orden ascendente:

SELECT    product_id
FROM    production.products
EXCEPT
SELECT    product_id
FROM    sales.order_items
ORDER BY     product_id;

Resultado:

product_id
1
121
125
154
195
267
284
291
316
317
318
319
320
321

En este post aprendiste a usar el operador EXCEPT de SQL Server que encuentra la diferencia entre dos consultas y el resultado regresa las filas que pertenecen únicamente a la primera consulta.

 

Compartir artículo:

Más artículos geniales

Cómo modificar una tabla SQL Server con Alter Table

Cómo modificar una tabla SQL Server con Alter Table

En este tutorial de SQL Server se explica cómo modificar una tabla utilizando la instrucción ALTER TABLE en SQL Server (Transact-SQL), por ejemplo, agregar una columna, modificar o eliminar una columna, cambiar el nombre de una columna o cambiar el nombre de una tabla con sintaxis y ejemplos.

Ver artículo completo
¿Cómo agrupar registros en SQL Server con la cláusula GROUP BY?

¿Cómo agrupar registros en SQL Server con la cláusula GROUP BY?

En este tutorial, aprenderá a usar la cláusula GROUP BY de SQL Server para organizar las filas en grupos por una o más columnas.

Ver artículo completo
¿Qué es SQL Like y para qué sirve?

¿Qué es SQL Like y para qué sirve?

En este tutorial, aprenderás a usar el operador LIKE de SQL Server para verificar si una cadena de caracteres coincide con un patrón especificado.

Ver artículo completo

Manténgase actualizado

Obtenga excelente contenido en su bandeja de entrada todas las semanas.
Solo contenido excelente, no compartimos su correo electrónico con terceros.
Subir al inicio de la pantalla