sql >> Databasteknik >  >> RDS >> PostgreSQL

Uppdatera poster som uppfyller ett villkor med ökande antal

Det är ett typiskt användningsfall för row_number() fönsterfunktion. Förutsatt att din huvudtabell är T, bör den här frågan fungera med postgresql 8.4 eller senare:

update T set local_id=s.rn 
from (select id,row_number() over(order by id) as rn from T where local_site_id=2) s
 where T.id=s.id;


  1. MySQL PDO förberedd snabbare än fråga? Det är vad detta enkla test visar

  2. Hitta främmande nyckel som matchar flera radvärden

  3. Varför returnerar inte denna sql-fråga några resultat som jämför flyttal?

  4. Oracle-tidsjämförelser