将列从1个表复制到另一个表

时间:2017-04-04 05:40:42

标签: sql postgresql

我想将一列数据从一个表传输到另一个表。 例如

Table 1 : 
ID, NAME, ADDRESS

ID和NAME目前有数据。 ADDRESS是空的。

TABLE2 : 
ADDRESS

我想从表2中复制整列ADDRESS数据,并将其与ID和名称中的现有数据一起插入表1中。

我不能使用insert命令,因为它只会从table1中的数据末尾开始插入。

请帮忙。

1 个答案:

答案 0 :(得分:0)

使用row_number:

步骤1:将两个表的列与行号的新列复制到临时表

步骤2:加入两个临时表并使用地址

更新临时表

步骤3:使用原始表加入临时表并更新地址

对于问题中提到的示例,查询将如下所示:

SELECT ID, NAME, ADDRESS, row_number() over (order by(select 1)) rnum
INTO #tempTable1
FROM Table1

SELECT ADDRESS, row_number() over (order by(select 1)) rnum
INTO #tempTable2
FROM Table2

update t1
set t1.ADDRESS = t2.ADDRESS
from #tempTable1 t1
join #tempTable2 t2
on t1.rnum = t2.rnum

update t1
set t1.ADDRESS = t2.ADDRESS
from Table1 t1
join #tempTable1 t2
on t1.ID = t2.ID