0
如果我有表A有兩列:ID和平均值,表B有很長的列列表(包括平均值),如何替換平均值列的值在表B中存在表A中存在的ID?用另一個表更新數據集中列的值
我已經試過PROC SQL UPDATE和兩個DATASET MERGE和DATASET更新,但是不斷增加行時列數不是兩個表中相同。
如果我有表A有兩列:ID和平均值,表B有很長的列列表(包括平均值),如何替換平均值列的值在表B中存在表A中存在的ID?用另一個表更新數據集中列的值
我已經試過PROC SQL UPDATE和兩個DATASET MERGE和DATASET更新,但是不斷增加行時列數不是兩個表中相同。
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;