我想更新 Postgres 表格中的每一行并将每一行设置为不同的值;该值将是具有起始值的增量值。
例如,假设我有包含以下数据的表 tab_a
:
|attr_a|attr_b|
|1 |null |
|2 |null |
|3 |null |
|4 |null |
我可能想要的输出是:
|attr_a|attr_b|
|1 |5 |
|2 |6 |
|3 |7 |
|4 |8 |
这是我的脚本:
UPDATE tab_a
SET attr_b = gen.id
FROM generate_series(5,8) AS gen(id);
但是没有按预期工作......
最佳答案
你可以做
UPDATE tab_a upd
SET attr_b = row_number + 4 -- or something like row_number + (select max(attr_a) from tab_a)
FROM (
SELECT attr_a, row_number() over ()
FROM tab_a
ORDER BY 1
) a
WHERE upd.attr_a = a.attr_a;
关于sql - 用增量值 Postgres 更新每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37143658/