sql >> Database >  >> RDS >> PostgreSQL

Postgresql - Kolommen hernummeren

Let op:

Dit heeft alleen zin als ac_n_circ is NIET de primaire sleutelkolom.

Als je zeker weet dat je dit nodig hebt (heb je dat echt?), dan zou zoiets als het volgende moeten werken:

with new_numbers as  (
   select row_number() over (order by ac_n_circ) as new_nr,
          ac_n_circ, 
          id
   from foo
) 
update foo
   set ac_n_circ = nn.new_nr
from new_numbers nn 
 where nn.id = foo.id;

Alternatief:

update foo 
  set ac_n_circ = nn.new_number
from (
   select id, 
          ac_n_circ,
          row_number() over (order by ac_n_circ) as new_number
   from foo
) nn
where nn.id = foo.id;

Beide verklaringen gaan ervan uit dat er een primaire sleutelkolom is met de naam id .




  1. MAX-waarde ophalen in mysql-query

  2. Hoe maak je een json-formaat met group-concat mysql?

  3. Postgresql-gegevenscluster verplaatsen

  4. Oracle SQL - Hoe u tellingen kunt krijgen op basis van datums in meerdere kolommen in ORACLE