SAS:将一个表中的一列映射到另一个表中的多个列中的任何一个

时间:2018-12-13 12:59:05

标签: sas

我有一个table4,其中包含4种不同的ID

Data table1;
Input id1 $ id2 $ id3 $ final_id $;
Datalines;
1 a a1 p
2 b b2 q
- c c2 r
3 d - s
4 - d4 t

表2包含表1的ID1,ID2或ID3中的任何ID:

Data table1;
Input id $ col1 $ col2 $;
Datalines;
1 gsh ywu
b hsjs kall
c2 jsjs ywe
3 sja weei
d4 ase uwh

我想在table2上保留对table1的联接,以便在table2中获得一个新列,从而为table1提供final_id。

我该如何解决这个问题?

请帮助。

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用SQL来做到这一点:

proc SQL noprint;
create table merged as
    select b.final_id, a.*
    from table2 as a left join table1 as b
    on (a.id eq b.id1 or a.id eq b.id2 or a.id eq b.id3)
;
quit;