2013-11-15 37 views
0

如果我有表A有两列:ID和平均值,表B有很长的列列表(包括平均值),如何替换平均值列的值在表B中存在表A中存在的ID?用另一个表更新数据集中列的值

我已经试过PROC SQL UPDATE和两个DATASET MERGE和DATASET更新,但是不断增加行时列数不是两个表中相同。

回答

2
data want; 
merge have1(in=H1) have2(in=H2); 
by mergevar; 
if H1; 
run; 

这将保证H2不会添加任何行,除非其中一个值具有重复值。其他条件也可以使用; if h2;会对右侧数据集做同样的事情,而if h1 and h2;只会保留来自两个表的记录。

PROC SQL连接也应该相当容易。

proc sql; 
create table want as 
select A.id, coalesce(B.mean, A.mean) 
from A left join B 
on A.id=B.id; 
quit; 
相关问题