Union Vs Union All

El otro día en un curso sobre las novedades de SQL Server 2008 con los chicos del CIIN, hablando sobre los operadores Union salió a relucir. ¿Es lo mismo dos sentencias Unidas por un Union que por un Union ALL?


A primera vista las sentencias no dan error, pero no  es lo mismo poner Union que Union ALL.


¿Diferencia?, básicamente cuando concatenamos con un Union el resultado nos saca sólo los resultados distintos, en cambio con el Union ALL, nos selecciona todos los registros, aunque este duplicado.


Con una tabla con datos: 1,2,3,4,5,6,7
Otra tabal con datos: 2,3,8,9,0


El resultado con Union seria: 1,2,3,4,5,6,7,8,9,0
El resultado con Union ALL seria: 1,2,2,3,3,4,5,6,7,8,9,0


Para resultados en los que tenemos claro que no se van a repetir los valores es conveniente usar Union ALL, debido a que Union hace un distinct de los datos, penalizando el rendimiento.


Interesante diferencia…


PD.1.: Union no sirve para campos Text y NText, pero si sirve el Union ALL (gracias Juan Ignacio).

9 comentarios en “Union Vs Union All”

  1. Si, claro que esta en todas las versiones, simplemente he querido decir que cuando nos salio el tema estabamos en un curso de Sql server 2008, quizas no me explique bien.. lo siento. Espero que lo hayais entendido…

Deja un comentario

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