SAS-数据集SQL垂直(纵向)合并

一、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合并,相同变量不合并,列选择不覆盖(不唯一行)

SAS-数据集SQL垂直(纵向)合并_第1张图片修饰语:all、corr、all+corr

SAS-数据集SQL垂直(纵向)合并_第2张图片

二、示例-except

行去重,列覆盖
SAS-数据集SQL垂直(纵向)合并_第3张图片
all:表间去重,表内部去重
SAS-数据集SQL垂直(纵向)合并_第4张图片
corr:相关去重,保留同名列
SAS-数据集SQL垂直(纵向)合并_第5张图片
all+corr:相关去重,表内不去重
SAS-数据集SQL垂直(纵向)合并_第6张图片

三、示例-intersect

intersect:行交集
SAS-数据集SQL垂直(纵向)合并_第7张图片
all:最终还是要执行intersect
SAS-数据集SQL垂直(纵向)合并_第8张图片
corr:行相关交集保留,保留同名列
SAS-数据集SQL垂直(纵向)合并_第9张图片
all+corr:行相交保留,保留相同列
SAS-数据集SQL垂直(纵向)合并_第10张图片

四、示例-union

union:行并,去重,列覆盖
SAS-数据集SQL垂直(纵向)合并_第11张图片
all:行不去重
SAS-数据集SQL垂直(纵向)合并_第12张图片
corr:行相关,保留相同列
SAS-数据集SQL垂直(纵向)合并_第13张图片
all+corr:行合并,保留相同列
SAS-数据集SQL垂直(纵向)合并_第14张图片

五、示例-outer union

union:横向合并
SAS-数据集SQL垂直(纵向)合并_第15张图片
corr:相同列合并
SAS-数据集SQL垂直(纵向)合并_第16张图片

六、列覆盖说明

如图所示,表a仅有city一个变量,表b有id、name、sex三个变量。纵向合并时,表a的变量覆盖了表b。
SAS-数据集SQL垂直(纵向)合并_第17张图片
SAS-数据集SQL垂直(纵向)合并_第18张图片

你可能感兴趣的:(sql,数据库,sas)