Sas Proc sql:将一个表中的一行复制到另一个表中的所有行

Sas 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:

我有两张桌子

表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:

看。 结果:


首先在表格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;