English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de PostgreSQL

Tutoriales avanzados de PostgreSQL

Interfaz PostgreSQL

Operador UNION de PostgreSQL

El operador UNION de PostgreSQL combina los resultados de dos o más declaraciones SELECT.

El operador UNION se utiliza para combinar los conjuntos de resultados de dos o más declaraciones SELECT.

Por favor, tenga en cuenta que cada declaración SELECT interna de UNION debe tener el mismo número de columnas. Las columnas también deben tener tipos de datos similares. Además, el orden de las columnas en cada declaración SELECT debe ser el mismo.

Sintaxis

La sintaxis básica de UNION es la siguiente:

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]
UNION
SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

La condición puede ser configurada con cualquier expresión según sus necesidades.

Ejemplo en línea

Crear tabla COMPANY (Descargar archivo SQL de COMPANY ),los datos son los siguientes:

w3codeboxdb# select * from COMPANY;
 id | name  | age | address   | salary
----+-------+-----+-----------+--------
  1 | Paul  |  32 | California|  20000
  2 | Allen |  25 | Texas     |  15000
  3 | Teddy |  23 | Norway    |  20000
  4 | Mark  |  25 | Rich-Mond |  65000
  5 | David |  27 | Texas     |  85000
  6 | Kim   |  22 | South-Hall|  45000
  7 | James |  24 | Houston   |  10000
(7 rows)

Crear la tabla DEPARTMENT (Descargar archivo SQL DEPARTMENT ),los datos son los siguientes:

w3codeboxdb=# SELECT * from DEPARTMENT;
 id | dept        | emp_id
----+-------------+--------
  1 | Facturación IT  |      1
  2 | Ingeniería |      2
  3 | Finanzas     |      7
  4 | Ingeniería |      3
  5 | Finanzas     |      4
  6 | Ingeniería |      5
  7 | Finanzas     |      6
(7 rows)

Ahora, utilizamos la cláusula UNION en la cláusula SELECT para conectar las dos tablas, como se muestra a continuación:

SELECT EMP_ID, NAME, DEPT FROM COMPANY INNER JOIN DEPARTMENT
   ON COMPANY.ID = DEPARTMENT.EMP_ID
   UNION
SELECT EMP_ID, NAME, DEPT FROM COMPANY LEFT OUTER JOIN DEPARTMENT
    ON COMPANY.ID = DEPARTMENT.EMP_ID;

Se obtuvieron los siguientes resultados:

 emp_id | name  |  dept
--------+-------+--------------
      5 | David | Ingeniería
      6 | Kim   | Finanzas
      2 | Allen | Ingeniería
      3 | Teddy | Ingeniería
      4 | Mark  | Finanzas
      1 | Paul  | Facturación IT
      7 | James | Finanzas
(7 rows)

Cláusula UNION ALL

El operador UNION ALL puede conectar dos SELECT statements con filas repetidas, generalmente, el operador UNION selecciona valores diferentes. Si permite valores repetidos, utilice UNION ALL.

Sintaxis

La sintaxis de la cláusula UNION ALL es la siguiente:

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]
UNION ALL
SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

La condición puede ser configurada con cualquier expresión según sus necesidades.

Ejemplo en línea

Ahora, combinemos las dos tablas mencionadas anteriormente utilizando una cláusula SELECT con la cláusula UNION ALL:

SELECT EMP_ID, NAME, DEPT FROM COMPANY INNER JOIN DEPARTMENT
   ON COMPANY.ID = DEPARTMENT.EMP_ID
   UNION ALL
SELECT EMP_ID, NAME, DEPT FROM COMPANY LEFT OUTER JOIN DEPARTMENT
    ON COMPANY.ID = DEPARTMENT.EMP_ID;

Se obtuvieron los siguientes resultados:

 emp_id | name  | dept
--------+-------+--------------
      1 | Paul  | Facturación IT
      2 | Allen | Ingeniería
      7 | James | Finanzas
      3 | Teddy | Ingeniería
      4 | Mark  | Finanzas
      5 | David | Ingeniería
      6 | Kim   | Finanzas
      1 | Paul  | Facturación IT
      2 | Allen | Ingeniería
      7 | James | Finanzas
      3 | Teddy | Ingeniería
      4 | Mark  | Finanzas
      5 | David | Ingeniería
      6 | Kim   | Finanzas
(14 rows)