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 'MA       

La tabla de resultados es similar al ejemplo siguiente:

EMPNO
======
000010
000020
000060
000200
000220  

El 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 'MA       

La tabla de resultados es similar al ejemplo siguiente:

EMPNO
======
000220
000200
000060
000010
000020
000010

Ahora, 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'.