Sql 如何将一组指定列的所有行从一个表插入到另一个表中
SQL n00b正在尝试找出如何在不编写循环的情况下执行以下操作 我有两张像这样的桌子Sql 如何将一组指定列的所有行从一个表插入到另一个表中,sql,sql-server,tsql,Sql,Sql Server,Tsql,SQL n00b正在尝试找出如何在不编写循环的情况下执行以下操作 我有两张像这样的桌子 First Second ================= ============================ Id | Name Id | FirstId | DisplayName ================= ============================ 1 |
First Second
================= ============================
Id | Name Id | FirstId | DisplayName
================= ============================
1 | 'foo'
-----------------
2 | 'bar'
----------------
3 | 'baz'
我需要一个查询,在第二个中为第一个中的每一行放置一行,如
First Second
================= ============================
Id | Name Id | FirstId | DisplayName
================= ============================
1 | 'foo' 1 | 3 | 'bazness'
----------------- ----------------------------
2 | 'bar' 2 | 1 | 'fooness'
---------------- ----------------------------
3 | 'baz' 3 | 2 | 'barness'
因此公式是:对于First
中的每一行f
,在Second
中添加一行f.Id
作为FirstID
和f.Name+'ness'
作为DisplayName
您只需要插入。选择
:
insert into second (firstId, DisplayName)
select id, name + 'ness'
from first;
注意:这假设second.id
声明为标识列。如果没有:
insert into second (id, firstId, DisplayName)
select row_number() over (order by (select null)), id, name + 'ness'
from first;