无法使用join语句从sas中的两个表中获取详细信息

无法使用join语句从sas中的两个表中获取详细信息,sas,Sas,我正在使用下面的代码,但在最终输出中,我无法在收入为234234的第一个条目中获得名称。如何在这里输入姓名 data names; input name $ age; datalines; John 10 Mary 12 Sally 12 Fred 1 Paul 2 ; run; data check; input name $ income; datalines; Mary 121212 Fred 334343 Ben 234234 ; Pro

我正在使用下面的代码,但在最终输出中,我无法在收入为234234的第一个条目中获得名称。如何在这里输入姓名

data names;
 input name $ age;
 datalines;
  John 10
  Mary 12
  Sally 12
  Fred 1
  Paul 2
 ;
run;

data check;
 input name $ income;
 datalines;
  Mary 121212
  Fred 334343
  Ben 234234
 ;

 Proc sql;
 title 'Inner Join';
 create table common_names as 
 select * from names as n right join check as c on
 n.name = c.name;
 run;

 Proc print data = common_names;
 run;


Output

Inner Join
Obs name    age income
1       .   234234
2   Fred    1   334343
3   Mary    12  121212

不能使用相同的名称创建两个变量,在本例中为变量名。所以要么创建两个变量

select n.name as name1, c.name as name2, ....
或者使用
COALESCE()
函数创建单个变量

select coalesce(n.name,c.name) as name, ....
您还可以查看SAS的
NATURAL
join。这将链接具有相同名称的变量表,并自动合并关键变量值

create table common_names as
  select *
  from names as n
  natural right join check as c
;

不能使用相同的名称创建两个变量,在本例中为变量名。所以要么创建两个变量

select n.name as name1, c.name as name2, ....
或者使用
COALESCE()
函数创建单个变量

select coalesce(n.name,c.name) as name, ....
您还可以查看SAS的
NATURAL
join。这将链接具有相同名称的变量表,并自动合并关键变量值

create table common_names as
  select *
  from names as n
  natural right join check as c
;