一、SQL垂直合并的基本语法
一个selectt对应一个表,select之间用set-operator连接,set-operator包括:except(期望)、intersect(相交)、union(合并),outer union(外部合并)。
except:行选择仅包含在table1,列选择基于select语句的位置的覆盖(唯一行)
intersect:行选择table1和table2交集,列选择基于select语句的位置的覆盖(唯一行)
union:行选择table1和table2合并,相同变量合并,列选择基于select语句的位置的覆盖(唯一行)
outer union:table1和table2合并,相同变量不合并,列选择不覆盖(不唯一行)
修饰语:all、corr、all+corr

二、示例-except
行去重,列覆盖

all:表间去重,表内部去重

corr:相关去重,保留同名列

all+corr:相关去重,表内不去重

三、示例-intersect
intersect:行交集

all:最终还是要执行intersect

corr:行相关交集保留,保留同名列

all+corr:行相交保留,保留相同列

四、示例-union
union:行并,去重,列覆盖

all:行不去重

corr:行相关,保留相同列

all+corr:行合并,保留相同列

五、示例-outer union
union:横向合并

corr:相同列合并

六、列覆盖说明
如图所示,表a仅有city一个变量,表b有id、name、sex三个变量。纵向合并时,表a的变量覆盖了表b。

