merge语句
用merge语句将两个或多个SAS数据集中的观测值横向匹配合并成一个新的数据集的一个观测值。
DATA <新数据集名称>;
MERGE <已有数据集列表>;
BY <变量1> [<变量2>…];
RUN;
说明:
1、匹配合并指来自不同数据集中具有至少一个共同变量(匹配变量),按照匹配变量取相同数值的观测值横向合并;
2、用by语句指定匹配的变量;
3、每一个待合并数据集需先按匹配变量排序。
merge与SQL合并的区分
merge适合一对一或一对多(多对一)合并
1.merge a b;by x;相当于SQL的full join:即a full join b on a.x=b.x;
2.merge a(in=ina) b(in=inb);by x;if ina;相当于sql的左连接 a left join b on a.x=b.x;
3.merge a(in=ina) b(in=inb);by x;if ina and inb;相当于SQL的内连接:a inner join b on a.x=b.x;
sql适合多对多合并
(两者区别较大:merge只取A.x与B.x的并集,即AUB;而SQL则取两者的笛卡尔乘积数即A.x的数量*B.x的数量)
参考:
(11条消息) SAS-数据步-合并-Merge语句_c573489167的博客-CSDN博客_sas中merge的用法
谁能讲讲merge和sql合并表格功能特性上的异同 - SAS专版 - 经管之家(原人大经济论坛) (pinggu.org)
标签:join,区别,SQL,合并,merge,sql,ina From: https://www.cnblogs.com/Rachellaw/p/16861296.html