用没有关系的另一个表2的列更新一个表的列



我有一个带有两列的表A,其中列NR为空

Fruit--------------NR
Apple 
Peach
Strawberry
Orange

和具有一列NR的表B

NR
121
314
422
756

我必须将表B中NR列的值插入表A中NR列数据的顺序并不重要。我只想复制所有值。

Probable最简单的解决方案是创建一个新表,并用列绑定的数据填充它。

您将使用基于为两个表定义的row_number的联接,按的某个顺序。请注意,要求两个表具有相同的行数,否则较长表中的某些列将被忽略。

查询

insert into new_a (fruit,nr) 
with fruit as (
select fruit, 
row_number() over (order by fruit) rn from a),
nr as (
select nr,
row_number() over (order by nr) rn
from b)
select fruit, nr from fruit join nr
on fruit.rn = nr.rn;

换句话说,您必须首先定义意义,即在两个表中排序,您可以执行列UNION

最新更新