我想将一列数据从一个表传输到另一个表。 例如
Table 1 :
ID, NAME, ADDRESS
ID和NAME目前有数据。 ADDRESS是空的。
TABLE2 :
ADDRESS
我想从表2中复制整列ADDRESS数据,并将其与ID和名称中的现有数据一起插入表1中。
我不能使用insert命令,因为它只会从table1中的数据末尾开始插入。
请帮忙。
答案 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