如何合并 SAS/SQL 中的两个表
How to merge two tables in SAS/SQL
我想使用主键连接两个数据集,如果第二个数据集中不存在(第一个数据集的)主键,则第二个数据集应该连接到第一个数据集中。
示例 -
数据集 1
Student R.NO age
Kevin 1. 25
Tom. 2. 26
joe. 3. 24
数据集 2
James. 1. 26
Stephnie 4. 21
Alaster. 3. 26
结果数据集 -
Student R.No. Age
Kevin 1. 25
Tom. 2. 26
Joe. 3. 24
Stephnie 4. 21
这里只在结果数据集中添加了 Stephnie,因为她的 r.no 不在数据集 1
中
应该这样做:
proc sql;
create table dataset3 as
select * from dataset2
where r_no not in (select r_no from dataset1)
;quit;
data final;
set dataset1 dataset3;
run;
SELECT *
FROM Dataset1
UNION ALL
SELECT *
FROM Dataset2
WHERE rowno NOT IN (SELECT rowno FROM #TEMP1)
输出:
我想使用主键连接两个数据集,如果第二个数据集中不存在(第一个数据集的)主键,则第二个数据集应该连接到第一个数据集中。
示例 - 数据集 1
Student R.NO age
Kevin 1. 25
Tom. 2. 26
joe. 3. 24
数据集 2
James. 1. 26
Stephnie 4. 21
Alaster. 3. 26
结果数据集 -
Student R.No. Age
Kevin 1. 25
Tom. 2. 26
Joe. 3. 24
Stephnie 4. 21
这里只在结果数据集中添加了 Stephnie,因为她的 r.no 不在数据集 1
中应该这样做:
proc sql;
create table dataset3 as
select * from dataset2
where r_no not in (select r_no from dataset1)
;quit;
data final;
set dataset1 dataset3;
run;
SELECT *
FROM Dataset1
UNION ALL
SELECT *
FROM Dataset2
WHERE rowno NOT IN (SELECT rowno FROM #TEMP1)
输出: