天天看点

PLSQL_基础系列03_合并操作UNION / UNION ALL / MINUS / INTERSET(案例)

2014-11-30 created by baoxinjian

一、摘要

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

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

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

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

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

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

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

二、union

union(联合)运算

union运算返回所有由任一查询选择的行。用union运算从多表返回所有行,但除去任何重复的行。

原则

被选择的列数和列的数据类型必须是与所有用在查询中的select语句一致。列的名字不必相同。

联合运算在所有被选择的列上进行。

在做重复检查的时候不忽略空(null)值。

in运算有比union运算高的优先级。

在默认情况下,输出以select子句的第一列的升序排序。

三、union all

运算从两个查询返回包括所有重复值的结果

和联合不同,重复的行不被过滤,并且默认情况下输出不排序。

不能使用distinct关键字。

注:除了上面的两点,union all的原则与union相同。 

四、minus

相交(intersect)

用相交运算返回多个查询中所有的公共行。

在查询中被 select 语句选择的列数和数据类型必须与在查询中所使用的所有的 seltct 语句中的   一样,但列的名字不必一样。

颠倒相交的表的排序不改变结果。

相交不忽略空值。

五、interset

相减(minus)

用相减运算返回由第一个查询返回的行,那些行不出现在第二个查询中 (第一个select语句减第二个select语句)。

在查询中被select语句选择的列数和数据类型必须与在查询中所使用的所有的seltct语句中的一样,但列的名字不必一样。

对于minus运算,在where子句中所有的列都必须在select子句中。

thanks and regards

上一篇: VB开发——

继续阅读