Sas Proc sql:将一个表中的一行复制到另一个表中的所有行
我有两张桌子 表A: 和只有一行的表BSas Proc sql:将一个表中的一行复制到另一个表中的所有行,sas,sql-update,Sas,Sql Update,我有两张桌子 表A: 和只有一行的表B c d e ------ 5 6 7 我想创建一个新表,如下所示: a b c d e ---------- 1 2 5 6 7 3 4 5 6 7 i、 e将B中的单行复制到A中的所有行。 注意:使用SAS proc sql 将忽略插入表A,从表B中选择*;因此,考虑到表DDL是相同的,我基本上合并了这两个表 将忽略插入表A,从表B中选择*;因此,考虑到表DDL是相同的,我基本上合并了这两个表 首先在表格A中添加3列: 然后使用表B中的值更新表A:
c d e
------
5 6 7
我想创建一个新表,如下所示:
a b c d e
----------
1 2 5 6 7
3 4 5 6 7
i、 e将B中的单行复制到A中的所有行。
注意:使用SAS proc sql 将忽略插入表A,从表B中选择*;因此,考虑到表DDL是相同的,我基本上合并了这两个表 将忽略插入表A,从表B中选择*;因此,考虑到表DDL是相同的,我基本上合并了这两个表 首先在表格A中添加3列: 然后使用表B中的值更新表A: 看。 结果:
首先在表格A中添加3列: 然后使用表B中的值更新表A: 看。 结果: 数据步
data want;
set A;
if _n_ = 1 then set B;
run;
数据步
data want;
set A;
if _n_ = 1 then set B;
run;
用您使用的数据库标记您的问题。对不起。自从我在SAS内部使用sql后,已更改为SAS。请使用您使用的数据库标记您的问题。抱歉。自从我在SAS内部使用sql后,已更改为SAS。在SAS proc sql中不起作用。我已将此信息添加到问题中。在SAS proc sql中不起作用。我已将此信息添加到问题中。这实际上可以在不向A添加新列的情况下工作。我只是进行了交叉连接并选择了A.*,b.*。这样做不好吗?您问题的标题是:将一个表中的一行复制到另一个表中的所有行,因此我认为您希望更新现有表。如果您只需要一个select语句,那么交叉连接就是一种方法:从表格a交叉连接表格b中选择a.*,b.*。请参阅演示:这实际上可以在不向a添加新列的情况下工作。我刚刚进行了交叉连接并选择了a.*,b.*。这样做不好吗?您问题的标题是:将一个表中的一行复制到另一个表中的所有行,因此我认为您希望更新现有表。如果您只需要一个select语句,那么交叉连接就是一个好办法:从表a交叉连接表b中选择a.*,b.*请参见演示:为了完整性,我将其包括在内。它正确地回答了问题,像requiresql这样的东西在很大程度上是首选项,而不是软件的实际需求或软件的限制。如果您的公司选择使用SQL实现,这是一个选择,但它会让您的生活更加困难。我只是为了完整性而将其包括在内。它正确地回答了问题,像requiresql这样的东西在很大程度上是首选项,而不是软件的实际需求或软件的限制。如果您的公司选择使用SQL实现,这是一种选择,但会使您的生活更加困难。
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;