2013-11-15 60 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; 
相關問題