Modos de fusionar listas de valores
Hay varias maneras de utilizar la palabra clave UNION para fusionar listas de valores.
Una unión es una operación de SQL que combina los resultados de dos sentencias SELECT para formar una única tabla de resultados. Cuando Db2 encuentra la palabra clave UNION, procesa cada instrucción SELECT para formar una tabla de resultados provisional. Db2 y luego combina la tabla de resultados provisionales de cada estado. Si utiliza UNION para combinar dos columnas con el mismo nombre, la columna correspondiente de la tabla de resultados hereda este nombre.
Puede utilizar la palabra clave UNION para obtener diversas filas en la tabla de resultados de una unión o puede utilizar UNION con la palabra clave opcional ALL para obtener todas las filas, incluidos los duplicados.
ejemplos
- Ejemplo 1: Cómo eliminar duplicados
- Utilice
UNION para eliminar duplicados al fusionar listas de valores que se obtienen de
varias tablas. El ejemplo siguiente combina valores de la tabla EMP y de la
tabla EMPPROJACT.
Liste los números de empleado de todos los empleados para los cuales se cumplen las siguientes sentencias:
- El número de departamento del empleado empieza por 'D'.
- El empleado se asigna a proyectos cuyos números de proyecto empiezan con 'MA'.
SELECT EMPNO FROM EMP WHERE DEPT LIKE 'D%' UNION SELECT EMPNO FROM EMPPROJACT WHERE PROJNO LIKE 'MALa tabla de resultados es similar al ejemplo siguiente:
EMPNO ====== 000010 000020 000060 000200 000220El resultado es la unión de dos tablas de resultados, una formada a partir de la tabla EMP y otra formada a partir de la tabla EMPPROJACT. El resultado, una tabla de una columna, es una lista de números de empleados. Las entradas de la lista son diferentes.
- Ejemplo: Cómo retener duplicados
- Si desea conservar los duplicados en el resultado de una unión, especifique la palabra clave opcional ALL después de la palabra clave UNION. Sustituya la palabra clave UNION en el ejemplo anterior por UNION ALL:
SELECT EMPNO FROM EMP WHERE DEPT LIKE 'D%' UNION ALL SELECT EMPNO FROM EMPPROJACT WHERE PROJNO LIKE 'MALa tabla de resultados es similar al ejemplo siguiente:
EMPNO ====== 000220 000200 000060 000010 000020 000010Ahora, 000010 se incluye en la lista más de una vez debido a que este empleado trabaja en un departamento que empieza con 'D' y también trabaja en un proyecto que empieza con 'MA'.