首页
会员中心
到顶部
到尾部
PostgreSQL教程

PostgreSQL UNION 操作符

时间:2020/11/3 9:48:24  作者:  来源:  查看:0  评论:0
内容摘要:PostgreSQL UNION 操作符PostgreSQL UNION 操作符合并两个或多个 SELECT 语句的结果。UNION 操作符用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数...

PostgreSQL UNION 操作符

PostgreSQL UNION 操作符合并两个或多个 SELECT 语句的结果。

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。

语法

UNIONS 基础语法如下:

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

这里的条件语句可以根据您的需要设置任何表达式。

实例

创建 COMPANY 表(下载 COMPANY SQL 文件 ),数据内容如下:

runoobdb# 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)

创建 DEPARTMENT 表(下载 DEPARTMENT SQL 文件 ),数据内容如下:

runoobdb=# SELECT * from DEPARTMENT; id | dept        | emp_id----+-------------+--------  1 | IT Billing  |      1  2 | Engineering |      2  3 | Finance     |      7  4 | Engineering |      3  5 | Finance     |      4  6 | Engineering |      5  7 | Finance     |      6(7 rows)

现在,我们在 SELECT 语句中使用 UNION 子句将两张表连接起来,如下所示:

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

得到结果如下:

 emp_id | name  |  dept--------+-------+--------------      5 | David | Engineering      6 | Kim   | Finance      2 | Allen | Engineering      3 | Teddy | Engineering      4 | Mark  | Finance      1 | Paul  | IT Billing      7 | James | Finance(7 rows)

UNION ALL 子句

UNION ALL 操作符可以连接两个有重复行的 SELECT 语句,默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。

语法

UINON ALL 子句基础语法如下:

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

这里的条件语句可以根据您的需要设置任何表达式。

实例

现在,让我们把上面提到的两张表用 SELECT 语句结合 UNION ALL 子句连接起来:

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

得到结果如下:

 emp_id | name  | dept--------+-------+--------------      1 | Paul  | IT Billing      2 | Allen | Engineering      7 | James | Finance      3 | Teddy | Engineering      4 | Mark  | Finance      5 | David | Engineering      6 | Kim   | Finance      1 | Paul  | IT Billing      2 | Allen | Engineering      7 | James | Finance      3 | Teddy | Engineering      4 | Mark  | Finance      5 | David | Engineering      6 | Kim   | Finance(14 rows)


相关评论
广告联系QQ:45157718 点击这里给我发消息 电话:13516821613 杭州余杭东港路118号雷恩国际科技创新园  网站技术支持:黄菊华互联网工作室 浙ICP备06056032号