一、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。