我有两个表。
表 A:
a b
----
1 2
3 4
和只有一行的表 B
c d e
------
5 6 7
我想创建一个看起来像这样的新表:
a b c d e
----------
1 2 5 6 7
3 4 5 6 7
即将单行从 B 复制到 A 中的所有行。 注意:使用 SAS 进程 sql。
首先在TableA
中添加 3 列:
ALTER TABLE TableA ADD c INTEGER;
ALTER TABLE TableA ADD d INTEGER;
ALTER TABLE TableA ADD e INTEGER;
然后用TableB
中的值更新TableA
:
UPDATE a
SET a.c = b.c, a.d = b.d, a.e = b.e
FROM TableA a CROSS JOIN TableB b;
请参阅演示。
结果:
| a | b | c | d | e |
| --- | --- | --- | --- | --- |
| 1 | 2 | 5 | 6 | 7 |
| 3 | 4 | 5 | 6 | 7 |
数据步骤?
data want;
set A;
if _n_ = 1 then set B;
run;
将忽略插入表 A 从表 B 中选择 *;所以基本上我正在合并两个表,考虑到表 DDL 是相同的。