sas - proc sql与不同变量的联合

标签 sas proc-sql

我正在尝试使用 proc sql - union 连接两个表,其中某些变量对于每个表都是唯一的。有没有办法在不使用 NULL 占位符变量的情况下执行此操作?基本上相当于下面的数据步骤。

data total;
set t1 t2;
run;

下面显示了我正在尝试做的一个简单示例。

data animal;
input common $ Animal $ Number;
    datalines;
a Ant 5
b Bird .
c Cat 17
d Dog 9
e Eagle .
f Frog 76
;
run;


data plant;
input Common $ Plant $ Number;
    datalines;
g Grape 69
h Hazelnut 55
i Indigo .
j Jicama 14
k Kale 4
l Lentil 88
;
run;

proc sql;
(select animal.*, '' as plant from animal)
union all corresponding
(select plant.*, '' as animal from plant)
;
quit;

我希望能够运行 proc sql,并且必须在 中创建 plantanimal 变量select 语句。

最佳答案

您需要外部联合,而不是联合所有。这符合您的预期(保留任一数据集中的所有变量)。请参阅Howard Schreier's excellent paper on SQL set theory了解更多信息。

proc sql;
create table test as
select * from animal
outer union corr
select * from plant
;
quit;

关于sas - proc sql与不同变量的联合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42675771/

相关文章:

sas - 在 SAS 中删除一系列变量

SAS Proc SQL Trim 不起作用?

mysql - SAS proc sql 更新表,包含计数和最大值

date - 如何使用 PROC SQL 将 200012 之类的数字列转换为 SAS 日期变量?

sql - SAS - 使用类似的子选择

regex - 如何删除SAS中两个字符串之间的所有字符(0个或多个)

linux - 在 Unix 中启动和停止 SAS Server 9.2

hash - SAS MD5 哈希

SAS宏函数返回SQL结果