【发布时间】:2016-03-12 22:58:37
【问题描述】:
论坛上有人问过类似的问题,但我似乎有一个独特的问题。我不确定这是因为我没有唯一的 ID 还是因为我的 KEY 是我的实际数据。希望大家帮忙。
我正在尝试合并具有相同列结构的两个表(旧表和新表)。
我想保留旧表中的所有值,并仅将新表中的新变量附加到组合表中。两个表中存在的任何键都应采用旧表的值。
OLD TABLE
Key | Points
AAA | 1
BBB | 2
CCC | 3
NEW TABLE
Key | Points
AAA | 2
BBB | 5
CCC | 8
DDD | 6
Combined TABLE
Key | Points
AAA | 1
BBB | 2
CCC | 3
DDD | 6
我觉得我想要实现的是相当于这个的维恩图:
...但无论出于何种原因,我都没有使用此代码获得预期的效果:
CREATE TABLE Combined
SELECT * FROM Old as A
FULL OUTER JOIN New as B ON A.Key=B.Key
WHERE A.Key IS NULL OR B.Key IS NULL;
【问题讨论】:
-
我在搜索 SO 的同时解决了这个问题,但似乎无法找到有效的解决方案?
-
SELECT isnull(old.Key, new.Key) Key, isnull(old.Points, new.Points) Points FROM Old FULL OUTER JOIN New ON old.Key = new.Key -
看起来 SAS 有严重的限制 - 它也不会将 ISNULL 识别为函数:/
标签: sql join merge sas proc-sql