Union 和 Union all

来源:互联网 发布:centos 7 minimal ssh 编辑:程序博客网 时间:2024/05/16 08:59


在oracle数据库中,UNION与UNION ALL都是用来合并两个或者多个SELECT结果集,它们都要求这多个SELECT 有相同的数目的数据列,并且对应数据列的类型要相同。但UNION与UNION  ALL在查询结果以及查询结果的默认排序方式都有着不同,下面分别介绍它们的用法及区别。

a)、UNION

UNION操作的结果会去除相同的数据记录,并且按默认升序的方式把结果集排序

用法:

SELECT column1,column2,...  FROM table1  UNION  SELECT column1,column2,...  FROM table2

1、UNION 在合并两个结果集会选择不同的值,把重复的数据记录只保留一份

2、UNION后的数据集会默认排序,如果我行排序的话,只用在最后一个SELECT语句中  加上排序语句

3、UNION的结果列名会自动取第一个SELECT的列名作为返回数据集的列名与其他SELECT列名无关,因此其他数据列列名可省略是需要数据列数目相同,并且对应列的类型相同或者可以自动转换,但是实际应用中最好每个SELECT语句中加上对应的列名

b)、UNION ALL

1、UINON ALL合并的两个SELECT数据集会把所有的记录都列出来,包括重复的数据

2、UNION  ALL的结果集没有顺序,如果需要对结果集进行排序,需要在最后一个SELECT语句中使用ORDER BY

3、UNION ALL与UNION类似返回的结果集的列名与第一个SELECT列名相同,与其他SELECT的列名无关

在实际的开发和使用过程中,需要根据需求来确定使用UNION还是UNION ALL

0 0
原创粉丝点击