我想以这种方式合并同一个表
ID B C D E
1 11 12 13 14
2 21 22 23 24
3 31 32 33 34至
ID B C D E
1 11 12 13 14
2 21 22 23 24
3 31 32 33 34
11 13 14
12
21 23 24
22
31 33 34
32基于第三个表的ID。(我希望只有那些存在于第三个表中的I)
第三张表
ID
1
3
21
31我有能力做这个联盟
proc sql ;
create table bb as
select * from first
union
select B, D, E from first
union
select C from first
;
quit; 这就是我被卡住的地方。如何仅选择存在于第三个表中的那些in。
发布于 2016-04-09 01:13:59
不能只使用子查询吗?
proc sql ;
create table want as
select B.*
from
(select * from first
union
select B, D, E from first
union
select C from first
) B
inner join THIRD c on B.id = C.id
;
quit;在()中插入构成第二个表的任何逻辑。
发布于 2016-04-09 00:35:18
您希望先联合第二个,然后连接到第三个,或者交替地将第三个连接到第一个和第二个;如果执行第一个操作,则不清楚SQL优化器是否会为您执行后一种操作。
proc sql;
create table want as
select *
from (
select id,B,D,E
from first
union
select id,B,D,E
from second
) U
right join
select id
from third
on U.id=third.id
;
quit;https://stackoverflow.com/questions/36504729
复制相似问题