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 <= 5select 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 ro<mark>来源gaodaimacom搞#^代%!码网</mark>wnum, '名称' NM from dual connect by rownum <= 5),B as (select rownum, '名称' from dual connect by rownum <= 3)select * from Aunionselect * 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 Aunion allselect * 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 AIntersectselect * 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 AMinusselect * from B;--结果示例(2条不相同数据)1 4 名称2 5 名称