0
Postgresのテーブル内のすべての行を更新し、各行を別の値に設定したい。この値は開始値で増分値になります。例えば各行をインクリメンタルな値で更新する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);
しかし、期待どおりに動作していません...
更新tab_aセットattr_b = attr_a + 4。 – MightyRearranger
@MightyRearranger attr_aは私のID自動インクリメンタルであり、常に1から始まるとは限りません。例を挙げました。 –
私は、テーブルに他のフィールドがあり、新しい値を特定の順序にしたいと思っています。そうであれば、Rank()Over(x、y、z順)をRANKINGとして使用して整数値を取得し、それを使って必要な系列を生成することができます。 – MightyRearranger