时间:2021-07-01 10:21:17 帮助过:4人阅读
union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。 Union :对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序; Union All :对两个结果集进行并集操作,包括重
union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。
Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
Union All:对两个结果集进行并集操作,包括重复行,不进行排序;
Intersect:对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;
(SQLSERVER用EXCEPT运算符返回由EXCEPT运算符左侧的查询返回、而又不包含在右侧查询所返回的值中的所有非重复值)
Minus:对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序。
可以在最后一个结果集中指定Order by子句改变排序方式。
示例:
--构造测试数据 select rownum, '名称' NM from dual connect by rownum <= 5 select rownum, '名称' from dual connect by rownum <= 3 --测试数据内容 ------A------- ------B------- ROWNUM NM ROWNUM NM 1 1 名称 1 1 名称 2 2 名称 2 2 名称 3 3 名称 3 3 名称 4 4 名称 5 5 名称 -- Union 对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序; with A as (select rownum, '名称' NM from dual connect by rownum <= 5), B as (select rownum, '名称' from dual connect by rownum <= 3) select * from A union select * from B; --结果示例:(共5条数据) 1 1 名称 2 2 名称 3 3 名称 4 4 名称 5 5 名称 -- Union All:对两个结果集进行并集操作,包括重复行,不进行排序; with A as (select rownum, '名称' NM from dual connect by rownum <= 5), B as (select rownum, '名称' from dual connect by rownum <= 3) select * from A union all select * from B; --结果示例(共8条数据) 1 1 名称 2 2 名称 3 3 名称 4 4 名称 5 5 名称 6 1 名称 7 2 名称 8 3 名称 -- Intersect:对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序; with A as (select rownum, '名称' NM from dual connect by rownum <= 5), B as (select rownum, '名称' from dual connect by rownum <= 3) select * from A Intersect select * from B; --结果示例(3条相同数据) 1 1 名称 2 2 名称 3 3 名称 -- Minus:对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序。 with A as (select rownum, '名称' NM from dual connect by rownum <= 5), B as (select rownum, '名称' from dual connect by rownum <= 3) select * from A Minus select * from B; --结果示例(2条不相同数据) 1 4 名称 2 5 名称