SET操作符(UNION/UNION ALL/INTERSECT/MINUS)

Union因为要进行重复值扫描,所以效率低。如果合并没有刻意要删除重复行,那么就使用Union All

两个要联合的SQL语句 字段个数必须一样,而且字段类型要“相容”(一致);

如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字。union(或称为联合)的作用是将多个结果合并在一起显示出来。

union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。

Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;

Union All:对两个结果集进行并集操作,包括重复行,不进行排序;

Intersect:对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;

Minus:对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序。

可以在最后一个结果集中指定Order by子句改变排序方式。

例如:

建两张表:s1,s2

create table s1

(

id number(10),

name varchar2(20),

age number(10)

)

create table s2

(

id number(10),

name varchar2(20),

age number(10)

)

插入数据:

insert into s1 values(1,‘刘备‘,51);

insert into s1 values(1,‘刘德华‘,54);

insert into s1 values(3,‘ 张学友‘,54);

insert into s1 values(4,‘黎明‘,54);

insert into s2 values(1,‘刘备‘,51);

insert into s2 values(3,‘ 张飞‘,52);

insert into s2 values(4,‘关羽‘,53);

1、Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;

select * from s1

union

select * from s2;

得到结果集:

ID    NAME    AGE

1      1     刘备        51

2      1     刘德华    54

3      3     张飞        52

4      3     张学友    54

5      4     关羽        53

6      4     黎明        54

2、Union All:对两个结果集进行并集操作,包括重复行,不进行排序;

select * from s1

union all

select * from s2;

得到结果集:

ID    NAME    AGE

1      1      刘备        51

2      1      刘德华    54

3      3      张学友    54

4      4      黎明        54

5      1      刘备        51

6      3      张飞        52

7      4      关羽        53

3、Intersect:对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;

select * from s1

Intersect

select * from s2;

得到结果集:

ID    NAME    AGE

1      1     刘备        51

4、Minus:对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序。

select * from s1

Minus

select * from s2;

得到结果集:

ID    NAME    AGE

1    1      刘德华    54

2    3      张学友    54

3    4       黎明     54

时间: 2024-11-10 01:26:25

SET操作符(UNION/UNION ALL/INTERSECT/MINUS)的相关文章

Union、Union All、Intersect、Minus

转自:http://www.2cto.com/database/201208/148795.html Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序: Union All:对两个结果集进行并集操作,包括重复行,不进行排序: Intersect:对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序: Minus:对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序. www.2cto.com 具体讲讲Union和Union All.先来看一个例子: 有

Oracle中的Union、Union All、Intersect、Minus[转]

众所周知的几个结果集集合操作命令,今天详细地测试了一下,发现一些问题,记录备考. 假设我们有一个表Student,包括以下字段与数据: drop table student; create table student ( id int primary key, name nvarchar2(50) not null, score number not null ); insert into student values(1,'Aaron',78); insert into student val

PLSQL_基础系列3_合并操作UNION / UNION ALL / MINUS / INTERSET

2014-11-30 BaoXinjian 一.摘要 如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到Union或者Union All关键字.Union(或称为联合)的作用是将多个结果合并在一起显示出来. Union和Union All的区别是,Union会自动压缩多个结果集合中的重复结果,而Union All则将所有的结果全部显示出来,不管是不是重复. Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序: Union All:对两个结果集进行

sql inner join , left join, right join , union,union all 的用法和区别

Persons 表: Id_P LastName FirstName Address City 1 Adams John Oxford Street London 2 Bush George Fifth Avenue New York 3 Carter Thomas Changan Street Beijing "Orders" 表: Id_O OrderNo Id_P 1 77895 3 2 44678 3 3 22456 1 4 24562 1 5 34764 65 1.inner

Oracle用户登录和连接查询、特殊排序、over()、rank()、decode()、 case when、UNION/UNION ALL

一.登录问题 1. 忘记用户名密码: (1)默认应户名密码: system/manager    sys/change_on_install     scott/tiger (2)cmd以系统管理员身份登录: C:\Users\SAMSUNG>sqlplus system/manager as sysdba 查看所有user: SQL> select username from dba_users; 修改用户密码: SQL> alter user scott identified by

oracle 两个sql带有order by的使用union/union all的时候报错 'ORA-00933:sql命令未正确结束' 处理办法

错误语句:select id,name from s1 order by stime union all select id,name from s2 order by stime 报错原因:oracle 搜索到order by后认为整个select语句就该结束了但是后面还有union all所以数据库无法解析,导致报错 处理办法:with a1 as (select id,name from s1 order by stime) , a2 as (select id,name from s2

Oracle集合操作函数:Union、Union All、Intersect、Minus

Union,对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序: Union All,对两个结果集进行并集操作,包括重复行,不进行排序: Intersect,对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序: Minus,对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序. 找出第一条SQL查询的不在第二条SQL语句查询结果中的那些记录 比not exists, not in 性能高 可以在最后一个结果集中指定Order by子句改变排序方式.

Intersect.Union,Union All,Intersect,Minus区别

Intersect和Minus的操作和Union基本一致,这里一起总结一下: Union,对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序: Union All,对两个结果集进行并集操作,包括重复行,不进行排序: Intersect,对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序: Minus,对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序. 可以在最后一个结果集中指定Order by子句改变排序方式. 原文地址:https://www.cnblogs

SQL Union & Union All 操作符

SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时,每条 SELECT 语句中的列的顺序必须相同. SQL UNION 语法 SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2 注释:默认地,UNION 操作符选取不同的值.如果允许重复的