如何使用Proc SQL查找仅存在于一个表中但不存在于另一个表中的所有记录?

Jay*_*ett 5 sql sas

我正在尝试在Enterprise Guide中执行此任务,否则我将使用数据步骤.

在数据步骤中,这将是:

data names;
 input name $;
 datalines;
  John
  Mary
  Sally
  Fred
  Paul
 ;
run;

data check;
 input name $;
 datalines;
  Mary
  Fred
 ;

Proc sort data=names; by name; run;
Proc sort data=check; by name; run;

Data work.not_in_check;
 merge names(in=n) check(in=c);
 by name;
 if n and not c;
run;
Run Code Online (Sandbox Code Playgroud)

itz*_*tzy 9

这是一种方式.肯定有很多其他人.

proc sql;
 create table not_in_check as
 select name
 from names
 where name not in (select name from check);
quit;
Run Code Online (Sandbox Code Playgroud)


Lon*_*ish 7

另一个微小的变化是:

proc sql;
create table not_in_check as select 
 a.* from names as a left join 
          check as b on
          a.name=b.name
          where b.name is null;
quit;
Run Code Online (Sandbox Code Playgroud)