数据库教程-Oracle Union运算符

跨零代码为大家提供高品质的解决方案,请大家多多来访,跨零不胜感激,在此谢过。

在本教程中,您将学习如何使用Oracle UNION运算符来组合由两个或多个查询返回的结果集。

Oracle UNION运算符简介

UNION运算符是一个集合运算符,它将两个或多个SELECT语句的结果集组合到一个结果集中。

以下说明了组合两个查询的结果集的UNION运算符的语法:

SELECT     column_list_1 FROM     T1 UNION  SELECT     column_list_1 FROM     T2; 

在此声明中,column_list_1column_list_2必须具有相同顺序的相同列数。 另外,对应列的数据类型必须是相同的数据类型组,例如数字字符

SELECT     column_list FROM     T1 UNION ALL  SELECT     column_list FROM     T2; 

Oracle UNION图示

假设有两个表 – T1T2

  • T1有三行:1,23
  • T2也有三行:2,34

下图说明了T1T2表的UNION运算图示:

Oracle Union运算符

UNION运算符删除(消除)重复的行 – 23

下图显示了UNION ALL运算符T1T2表的结果:

Oracle Union运算符

正如上面所看到的,UNION ALL保留了重复的行 – 23

Oracle UNION示例

请参阅示例数据库中的以下employees表和contacts表的ER图结构。

Oracle UNION示例1

假设,需要发送电子邮件到员工和联系人表的电子邮件地址。 要做到这一点,首先,需要撰写员工和联系人的电子邮件地址列表。然后发送电子邮件到列表中。

以下语句使用UNION运算符来构建员工和联系人表中的联系人列表:

SELECT     first_name,     last_name,     email,     'contact' FROM     contacts UNION SELECT     first_name,     last_name,     email,     'employee' FROM     employees; 

执行上面查询语句,得到以下结果 –

Oracle Union运算符

2. Oracle UNION和ORDER BY示例

要对由UNION运算符返回的结果集进行排序,可以将ORDER BY子句添加到最后一个SELECT语句中,如下所示:

SELECT     first_name || ' ' || last_name name,     email,     'contact' FROM     contacts UNION SELECT     first_name || ' ' || last_name name,     email,     'employee' FROM     employees ORDER BY     name DESC; 

在这个例子中,将first_namelast_name连接起来,并使用一个别名:name,结果按name列排序。
执行上面查询代码,得到以下结果 –

Oracle Union运算符

3. Oracle UNION ALL示例

以下语句返回员工和联系人的唯一姓氏(last_name):

SELECT     last_name FROM     employees UNION SELECT     last_name FROM     contacts ORDER BY     last_name; 

该查询返回了357个唯一的姓氏(last_name)值。参考下面结果 –

Oracle Union运算符

但是,如果在查询中使用UNION ALL而不是UNION,如下所示:

SELECT     last_name FROM     employees UNION ALL SELECT     last_name FROM     contacts ORDER BY     last_name; 

该查询返回426行。 另外,一些行是重复的,例如,Atkinson, Barnett。 这是因为UNION ALL操作符不会删除重复的行。

Oracle Union运算符

Oracle UNION 与 JOIN 区别

UNION将结果集放置在另一个上面,这意味着它将垂直地附加结果集。但是,诸如INNER JOINLEFT JOIN的连接将结果集水平组合。

下图说明了unionjoin的区别:

Oracle Union运算符

在本教程中,您已经学习了如何使用Oracle UNION运算符来组合多个查询的结果集。

  

从零到一,创造未来!跨零综合IT问题解决服务站,欢迎你的到来。Oracle数据库教程 只为你绽放。

本文固定链接: http://kua0.com/2019/01/16/数据库教程-oracle-union运算符/

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注