Comparar los resultados de SQL Server de dos consultas

SQL Server es una base de datos versátil y es la base de datos relacional más utilizada en muchas industrias de software. En este artículo, veamos brevemente la comparación de los resultados de SQL Server de dos consultas. Al usar Azure Data Studio, veamos los conceptos comenzando con la creación de la base de datos, la creación de tablas, los bloqueos, etc. Azure Data Studio funciona bien para entornos Windows 10, Mac y Linux. Se puede instalar desde

Creación de base de datos:

Comando para crear la base de datos. Aquí GEEKSFORGEEKS es el nombre de la base de datos

CREATE DATABASE GEEKSFORGEEKS;

Activar la base de datos

USE GEEKSFORGEEKS;

Agregar las tablas a la base de datos:

Creación de una tabla con clave principal. Aquí ID es una CLAVE PRINCIPAL, lo que significa que cada autor tendrá su propia ID

CREATE TABLE Authors (
  ID INT NOT NULL PRIMARY KEY,
  <other column name1> <datatype> <null/not null>,
  ..........
);

Si se especifica explícitamente «NOT NULL», esa columna debe tener valores. Si no se especifica, por defecto es “NULL”.

Insertemos algunos registros en la tabla y verifiquemos el contenido de los resultados de la tabla.

Contenido de la tabla de autor

Para la comparación de consultas SQL, podemos usar CONSTRUCCIONES «UNION, INTERSECT, EXCEPT». Podemos comprobar uno por uno.

EXCEPTO : 

SQL EXCEPT funciona de manera similar a la forma del operador «-» en Matemáticas. Es decir, devuelve los registros de Left Query que no están presentes en los registros de Right Query.

Ejemplo 1 :

 SELECT * from Authors 
 EXCEPT
 SELECT * from Authors WHERE Skillsets like 'java%' 

Producción :

Excepto para los resultados de construcción

Explicación :

La consulta de la izquierda produce los 4 registros de la tabla, mientras que la consulta de la derecha produce solo el primer y el cuarto registro. Dado que se usa la construcción «EXCEPTO», el resultado de la consulta anterior producirá solo el segundo y el tercer registro (que no están disponibles en la segunda consulta).

La construcción «EXCEPT» es equivalente a la construcción «MINUS» en Oracle.

Ejemplo 2:

SELECT * from Authors WHERE Skillsets like 'java%'  
 EXCEPT
 SELECT * from Authors 

¿Puedes confirmar cuál podría ser el resultado de esto?

Sí, exactamente, no hay salida ya que la consulta de la izquierda contiene solo las filas 1 y 4 y la consulta de la derecha contiene todas las filas y cuando se aplica «EXCEPTO», solo vemos datos en blanco.

Por lo general, «EXCEPTO» se usa para averiguar los resultados de la consulta que deben ser idénticos o no y cuando el resultado no muestra medios de datos, los resultados de la consulta son idénticos.

Nota: EXCEPT se puede colocar entre consultas solo cuando la salida resultante de ambas consultas es la misma. Si difieren, no podemos aplicar «EXCEPTO»

UNIÓN :

Siempre que haya un requisito como combinar datos en varias tablas o combinar datos de una sola tabla que evolucionó a partir de diferentes consultas, podemos optar por UNION. Esto es equivalente a «UNIÓN» en Matemáticas.

Deje que haya otra tabla llamada «Authors2021» y tenga algunos registros de la siguiente manera:

Autor2021 contenido de la tabla

Ejemplo 3:

SELECT AuthorName,Age,Skillsets,NumberOfPosts from Authors   
UNION
SELECT AuthorName,Age,Skillsets,NumberOfPosts from Authors2021

Producción :

Unión de dos conjuntos de resultados de tablas, aquí el registro común se muestra solo una vez evitando duplicados

Explicación :

Si observa la salida, los datos de ambas tablas se combinan y, por lo tanto, podemos ver la salida anterior.

Mientras se aplica Union, si hay registros comunes en ambas tablas, tomará los datos de una tabla y así evitará la duplicación. Entonces, la resultante de Union será la combinación de todos los registros en ambas tablas. es decir, el conjunto de resultados producido por la primera consulta se combina con el conjunto de resultados producido por la segunda consulta.

Si comprobamos la salida, no tenemos registros duplicados.

Uso: siempre que necesitemos mostrar la salida acumulada evitando duplicados, podemos optar por UNION.

UNIÓN TODOS:

Esto es similar a UNION pero incluye registros duplicados y, por lo tanto, se ven repeticiones de registros.

Ejemplo 4:

SELECT AuthorName,Age,Skillsets,NumberOfPosts from Authors    
UNION ALL
SELECT AuthorName,Age,Skillsets,NumberOfPosts from Authors2021

Producción :

Si verifica la salida, en la primera y octava fila, los valores de columna recuperados son idénticos. Dado que hemos utilizado «Unir TODO», el resultado es de ambas tablas, incluidos los duplicados.

Nota importante a tener en cuenta al aplicar «UNION» y «UNION ALL»

  1. El mismo número de columnas debe estar presente y su orden también debe mantenerse en las declaraciones de selección
  2. La cláusula Group By and Have es posible en cada consulta de selección, pero no en todo el conjunto de resultados
  3. Ordenar por no se puede usar con cada declaración individual, pero se puede aplicar con todo el conjunto de resultados.

INTERSECARSE:

Esta construcción proporciona los registros que ocurren comúnmente entre dos consultas de selección. Esto es lo opuesto a UNION. UNION elimina el duplicado y muestra todos los registros, pero INTERSECT muestra solo los registros comunes. Entonces, siempre que haya un escenario de mostrar registros comunes, podemos usar INTERSECT

 Ejemplo 5:

SELECT AuthorName,Age,Skillsets,NumberOfPosts from Authors    
INTERSECT
SELECT AuthorName,Age,Skillsets,NumberOfPosts from Authors2021

Producción :

Explicación :

Al comparar los contenidos de la tabla Author y Author2021, para los nombres de campo como AuthorName , Age , Skillsets , NumberOfPosts , solo los datos que se muestran arriba son comunes y, por lo tanto, en la salida, estamos viendo esto.

Conclusión :

Al usar UNION, UNION ALL, EXCEPT e INTERSECT, podemos comparar dos consultas y obtener el resultado necesario según nuestros requisitos. Los ejemplos dados son fáciles de seguir, podemos tener consultas complejas y podemos aplicar las construcciones mencionadas en ellos y podemos comparar.

Publicación traducida automáticamente

Artículo escrito por priyarajtt y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *