如何在某些表为空的情况下执行 UNION
how to perform a UNION where some tables are empty
我希望在 3 个 table 之间执行 UNION,我知道其中 1 个没有值(空 table)。
我在使用 SAS PROC SQL 时遇到错误:
错误:Table WORK.B 没有任何列。
我的代码:
select *
from work.A
union
select *
from work.B
union
select *
from work.C
据我了解,我需要使用 EXIST,以便 UNION 仅存在 tables。
日志错误消息还指出 PROC SQL requires each of its tables to have at least 1 column.
您可以使用 DATA
步骤 SET
语句堆叠(联合)您的数据,然后 SORT
去除重复项。
示例:
data x;
set sashelp.class (where=(name=:'A'));
data y;
stop;
data z;
retain age weight name height;
set sashelp.class (where=(name in: ('A', 'J')));
run;
data want;
set x y z;
run;
proc sort data=want nodupkey;
by _all_;
run;
我希望在 3 个 table 之间执行 UNION,我知道其中 1 个没有值(空 table)。 我在使用 SAS PROC SQL 时遇到错误: 错误:Table WORK.B 没有任何列。
我的代码:
select *
from work.A
union
select *
from work.B
union
select *
from work.C
据我了解,我需要使用 EXIST,以便 UNION 仅存在 tables。
日志错误消息还指出 PROC SQL requires each of its tables to have at least 1 column.
您可以使用 DATA
步骤 SET
语句堆叠(联合)您的数据,然后 SORT
去除重复项。
示例:
data x;
set sashelp.class (where=(name=:'A'));
data y;
stop;
data z;
retain age weight name height;
set sashelp.class (where=(name in: ('A', 'J')));
run;
data want;
set x y z;
run;
proc sort data=want nodupkey;
by _all_;
run;