Cómo utilizar el intersect y salvo operaciones en sql

los UNIÓN operación produce una tabla de resultados que contiene todas las filas que aparecen en alguna de las tablas SQL fuente. Si desea que sólo las filas que aparecen en todas las tablas de origen, se puede utilizar el INTERSECARSE operación, que es la implementación de la operación de SQL se cruzan de álgebra relacional. INTERSECARSE puede ilustrarse mediante la devolución al mundo de fantasía en el que Bob Turley fue cambiado a los Dodgers a mitad de temporada:

Video: Operadores Aritméticos y Asignación (17-35) Bases de Datos en Microsoft Sql Server 2012

SELECT * FROM NACIONAL-Nombre Apellido CompleteGames --------- -------- ------------- Sal Maglie 11Don Newcombe9SandyKoufax 13Don Drysdale12Bob Turley 8Seleccione * FROM American- FIRST_NAME LAST_NAME COMPLETE_GAMES ---------- --------- -------------- Whitey Ford 12Don Larson 10Bob Turley 8AllieReynolds14

Sólo las filas que aparecen en todas las tablas de origen se muestran en la INTERSECARSE tabla de resultados de la operación:

Video: Cursos SQL SERVER #13 operadores aritmeticos

SELECT * FROM NATIONALINTERSECTSELECT * FROM AMERICAN-Nombre Apellido CompleteGames --------- -------- ------------- Bob Turley 8

La tabla de resultados le dice que Bob Turley fue el único lanzador para lanzar el mismo número de juegos completos en ambas ligas (una distinción más bien oscuro de edad bala Bob). Nota: Como fue el caso de UNIÓN, INTERSECT DISTINCT produce el mismo resultado que la INTERSECARSE operador utiliza solo. En este ejemplo, solamente una de las filas idénticas que ofrece Bob Turley es regresado.

los TODAS y CORRESPONDIENTE palabras clave funcionan en una INTERSECARSE operación de la misma manera que lo hacen en una UNIÓN operación. Si utiliza TODAS, duplicados se retienen en la tabla de resultados. Si utiliza CORRESPONDIENTE, intersectados las tablas no tienen que ser compatibles sindicato, a pesar de las columnas correspondientes deben tener tipos de juego y longitudes.

Esto es lo que se obtiene con INTERSECT ALL:

Video: Intersect operator in sql server

SELECT * FROM NATIONALINTERSECT ALLSELECT * FROM AMERICAN-Nombre Apellido CompleteGames --------- -------- ------------- Bob Turley Turley 8 8Bob

Consideremos otro ejemplo: Un municipio mantiene un registro de los teléfonos celulares realizadas por agentes de policía, bomberos, barrenderos y otros empleados de la ciudad. Una tabla de base de datos llamada TELÉFONOS contiene datos sobre todos los teléfonos en uso activo. Otra tabla denominada OUT, con una estructura idéntica, contiene datos sobre todos los teléfonos que han sido retirados del servicio.

No hay teléfonos deben existir siempre en ambas tablas. Con un INTERSECARSE operación, se puede probar para ver si se ha producido una duplicación tan indeseada:

SELECT * FROM PHONESINTERSECT correspondiente (PhoneID) SELECT * FROM OUT -

Si esta operación se da una tabla de resultados que contiene todas las filas en absoluto, usted sabe que tiene un problema. Usted debe investigar cualquier PhoneID las entradas que aparecen en la tabla de resultados. El teléfono correspondiente puede ser activo o fuera de servicio- no puede ser a la vez. Después de detectar el problema, puede realizar una BORRAR operación en una de las dos mesas para restaurar la integridad de la base de datos.

Video: What is Intersect Operator in SQL Server - SQL Server Tutorial / TSQL Tutorial

los UNIÓN operación actúa sobre dos tablas de origen y devuelve todas las filas que aparecen en cualquiera de las tablas. los INTERSECARSE operación devuelve todas las filas que aparecen tanto en la primera y la segunda tablas. En contraste, el EXCEPTO (o SALVO DISTINCT) Operación devuelve todas las filas que aparecen en la primera mesa, pero eso no haga También aparecerá en la segunda tabla.

Volviendo al ejemplo de la base de datos de teléfonos municipal, dice que un grupo de celulares que habían sido declarados fuera de servicio y devueltos al proveedor para reparaciones ahora han sido corregidos y se coloca de nuevo en servicio. La tabla TELÉFONOS se actualiza para reflejar los teléfonos devueltos, pero los teléfonos devueltos no se elimina de la tabla OUT ya que debería haber sido.

Se puede visualizar el PhoneID los números de los teléfonos en la tabla OUT, con los reactivados los eliminados, utilizando una EXCEPTO operación:

SELECT * FROM OUTEXCEPT correspondiente (PhoneID) SELECT * FROM PHONES de

Esta consulta devuelve todas las filas de la tabla de quién PhoneID No es también presente en la tabla TELÉFONOS.

Artículos Relacionados