我有一个关于 PostgreSQL 的表,其中有 1000 行。我的表中有一个整数列是空的。我想填充newid顺序的、唯一的数字,有点像主键。
Product
-------------------------
id name newid size
60 .... null L
72 .... null M
83 .... null xl
84 .... null S
85 ...
Run Code Online (Sandbox Code Playgroud)
如何编写更新我的newid列的查询。
Product
-------------------------
id name newid size
60 .... 1 L
72 .... 2 M
83 .... 3 xl
84 .... 4 S
85 ...
Run Code Online (Sandbox Code Playgroud)
您可以使用JOIN或子查询执行此操作。这个想法是使用计算新的 idrow_number()然后将该值带入每一行:
with newvals (
select p.*, row_number() over (order by id) as seqnum
from product p
)
update product p
set newid = (select seqnum from newvals nv where nv.id = p.id);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3719 次 |
| 最近记录: |