InicioArticulos y noticiasBases de datosProgramaciónForosInternetServiciosContratacionEmail
Tutorial de Transact SQL
Introducción a Transact SQL
Programación con Transact SQL
Fundamentos de Transact SQL
Tipos de datos en Transact SQL
Variables en Transact SQL
Equivalencia de datos de SQL Server y .NET
Operadores en Transact SQL
Estructuras de control en Transact SQL
Control de errores en Transact SQL
Consultar datos en Transact SQL
Consultas agregadas
Select FOR XML
Operaciones con conjuntos.
Insertar datos en Transact SQL
Actualizar datos en Transact SQL
Borrar datos en Transact SQL
Transacciones en Transact SQL
Procedimientos almacenados en Transact SQL
Funciones en Transact SQL
Funciones integradas de Transact SQL (I)
Triggers en Transact SQL
Cursores en Transact SQL
SQL dinámico en Transact SQL
También puedes ver ...
SET IDENTITY_INSERT ON y LinqToSQL
SQL Server 2008
LinQ To SQL - Un ejemplo sencillo
Formatear números en SQL Server
Leer un campo XML de SQL Server 2005 con C#
SQL dinámico en Transact SQL
Cursores en Transact SQL
Triggers en Transact SQL
Funciones en Transact SQL
Procedimientos almacenados en Transact SQL

Afiliados
La Web del programador
MundoProgramacion


 

Operaciones con conjuntos.

    SQL Server 2005 permite tres tipos de operaciones con conjuntos:

  • UNION, disponible en todas las versiones de SQL Server.
  • EXCEPT, nuevo en SQL Server 2005.
  • INTERSECT, nuevo en SQL Server 2005.

    Para utilizar operaciones de conjuntos debemos cumplir una serie de normas.

  • Las consultas a unir deben tener el mismo número campos, y además los campos deben ser del mismo tipo.
  • Sólo puede haber una única clausula ORDER BY al final de la sentencia SELECT.

UNION

    UNION devuelve la suma de dos o más conjuntos de resultados. El conjunto obtenido como resultado de UNION tiene la misma estructura que los conjuntos originales.

    El siguiente ejemplo muestra el uso de UNION


SELECT
Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento

FROM EMPLEADOS

UNION

SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento

FROM CLIENTES

    Cuando realizamos una consulta con UNION internamente se realiza una operacion DISTINCT sobre el conjunto de resultados final. Si queremos obtener todos los valores debemos utiliza UNION ALL.


SELECT
Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento

FROM EMPLEADOS

UNION ALL

SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento

FROM CLIENTES

EXCEPT

    EXCEPT devuelve la diferencia (resta) de dos o más conjuntos de resultados. El conjunto obtenido como resultado de EXCEPT tiene la misma estructura que los conjuntos originales.

    El siguiente ejemplo muestra el uso de EXCEPT


SELECT
Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento

FROM EMPLEADOS

EXCEPT

SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento

FROM CLIENTES

    El uso de EXCEPT, como norma general, es mucho más rápido que utilizar condiciones NOT IN o EXISTS en la clausula WHERE.

INTERSECT

    Devuelve la intersección entre dos o más conjuntos de resultados en uno. El conjunto obtenido como resultado de INTERSECT tiene la misma estructura que los conjuntos originales.

    El siguiente ejemplo muestra el uso de INTERSECT


SELECT
Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento

FROM EMPLEADOS

INTERSECT

SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento

FROM CLIENTES

 


Inicio | Tutorial de Transact SQL Select FOR XMLTutorial de Transact SQLInsertar datos en Transact SQL Versión para imprimir Foros de consulta

 
devria`ponerrejempols ... por miguel
Respuesta recibida el [05/09/2007 06:42:04]
devria`ponerrejempols 

 
gracias por valeria saen
Respuesta recibida el [23/03/2008 12:56:48]
me gusta mucho esta pagina

 
COMENTARIO por JUAN GAYTAN
Respuesta recibida el [25/05/2008 08:15:28]
MI TAREA HA SIDO SOLUCIONADA GRACIAS A
SU PAGINA

 
Saludos! por Lox
Respuesta recibida el [27/05/2008 02:55:45]
Si pusieras un ejemplo y los resultados que lanza cada operación, estaría excelente!, y gracias me ha sido de mucha ayuda tu página

atte: Lox

 
Una duda por Christian
Respuesta recibida el [06/06/2008 12:14:45]
Hola que tal tengo un problema estoy probando esta consulta en oracle y me marca esto de error SQL command not properly ended y no entinedo porque si alguien me podria ayudar se lo agradeceria

SELECT FAMILIA_ID
FROM PADRON.FORMATO_S2
WHERE TRABAJO_IMPRESION_ID = 90000059
EXCEPT
SELECT FAMILIA_ID
FROM PADRON.FAMILIA
WHERE situacion_familia_id=1

Saludos

 
Esto es Transact-sql, en decir... por Devjoker
Respuesta recibida el [06/06/2008 01:21:33]
Esto es Transact-sql, en decir SQL Server 2005. No sirve para Oracle. En Oracle hay que usar MINUS.
Por favor - las preguntas en los foros!

 
me gusta esta pagina... por Laisa
Respuesta recibida el [11/09/2008 02:01:58]
me gusta esta pagina

 
Exelente por gmorales
Respuesta recibida el [25/09/2008 02:23:36]
Exelente Info, De gran ayuda, Gracias.

 
esta super esta pag. por sheryl
Respuesta recibida el [05/11/2008 03:30:45]
me encanta 

 
Solo para Felicitar por Luis Alexander Tello Calderón
Respuesta recibida el [21/11/2008 01:36:03]
El contenido de esta web es buena gracias a ello puede resolver un problema que tenia en mi Base datos ... , Gracias por la ayuda ...


Añadir comentario ... Para preguntar utiliza los foros
Autor:

Título:


Para preguntar utiliza los foros.



Inicio | Tutorial de Transact SQL Select FOR XMLTutorial de Transact SQLInsertar datos en Transact SQL Versión para imprimir

Operaciones con conjuntos.
Autor: Pedro Herrarte Sánchez
Visitas: 17360 Fecha de publicación: 16/08/2007
Pedro Herrarte, es consultor independiente, ofreciendo servicios de consultoría, análisis, desarrollo y formación.

Posee mas de diez años de experiencia trabajando para las principales empresas de España.

Es especialista en tecnologías .NET, entornos Web, bases de datos (SQL Server y ORACLE) e integración de sistemas.

Es experto en desarrollo (C#, ASP.NET, VB.Net, T-SQL, PL/SQL, , ASP, CGI , C, Pro*C, Java, Essbase, Vignette, PowerBuilder y Visual Basic ...) y bases de datos (SQL Server y ORACLE).

Es fundador, diseñador y programador de www.devjoker.com.




Visitas: 34 | Comentarios: 0 | Archivo: Articulos
Visitas: 108 | Comentarios: 0 | Archivo: Articulos
Visitas: 154 | Comentarios: 0 | Archivo: Articulos
Categorias: ASP.NET
Visitas: 33 | Comentarios: 0 | Archivo: Articulos
Categorias: TFS
Visitas: 285 | Comentarios: 1 | Archivo: Articulos
Categorias: Visual Basic .NET|C#
Visitas: 838 | Comentarios: 2 | Archivo: Articulos
Categorias: C#|ASP.NET|HTML DHTML|XML|JavaScript|ASP.NET|ASP|PHP|Visual Studio
Visitas: 711 | Comentarios: 1 | Archivo: Articulos
Categorias: Administración|Tutorial SQL
Visitas: 447 | Comentarios: 0 | Archivo: Articulos
Categorias: ASP.NET
Visitas: 1051 | Comentarios: 1 | Archivo: Articulos
Categorias: ASP.NET|CSS|ASP.NET
Visitas: 250 | Comentarios: 0 | Archivo: Articulos
Categorias: TFS

Útimos temas recibidos en los foros ...
FORMULARIO ACCESS por jcifuentes ... [Access] 11 29/05/2007
Ysmael por Ysmael ... [SQL] 0 08/01/2009
Reflection por Maurito22 ... [C#] 2 06/01/2009
Programador por Robert ... [ORACLE] 0 07/01/2009
como insertar registros en un formulario de visual basic.net desde la base de datos sql server por orlan ... [SQL Server] 8 09/06/2008
quierocodigo de autogenerado del seguro por edwin garcia ramirez ... [Visual Basic .NET] 0 07/01/2009
Video gratis sobre AJAX con ASP.NET por alexxe ... [ASP.NET] 1 06/01/2009
calcular saldo acumulativo por cben ... [SQL] 5 30/12/2008
comparar 2 campos de 2 tablas usando el like por nani ... [SQL Server] 1 06/01/2009
Apagar ordenador remoto en C# por victoryiyo ... [C#] 1 07/01/2009
numero de AUTOGENERADO IPSS por carlos ... [Visual Basic .NET] 5 30/10/2008
Como mandar mensaje a Celular por Pako ... [C#] 63 13/03/2007

Access CGI JSP ORACLE UNIX
Actualidad HTML/DHTML/XHTML LINUX PHP Visual Basic .NET
ASP ISAPI MS DOS Power Builder Visual Basic 6.0
ASP.NET Java mySQL SQL WIN 98/NT/2000/XP
C# JavaScript Opinion SQL Server

devjoker  Te recomendamos además ...
09/05/2006 Como leer XML con C#
06/11/2007 Cursores en Transact SQL    forma parte de...Tutorial de Transact SQL
31/03/2006 Tipos de datos en PL/SQL    forma parte de...Tutorial PL/SQL
31/03/2006 Operadores en PL/SQL    forma parte de...Tutorial PL/SQL
08/03/2007 Cambiar el nombre del servidor SQL Server
03/10/2006 Ocultación de miembros    forma parte de...Tutorial C#
21/07/2006 Funciones integradas de PL/SQL    forma parte de...Tutorial PL/SQL
01/01/2006 Borrado de datos. DELETE    forma parte de...Tutorial SQL
10/10/2006 Como conectar a ORACLE con Java
14/07/2006 Tablas PL/SQL    forma parte de...Tutorial PL/SQL

 

UNION
EXCEPT
INTERSECT
Encuesta
¿A que perfil te adaptas mejor?
[Ver] [Votar]