PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Réorganisation des enregistrements PostgreSQL à l'aide de la mise à jour avec une sous-sélection

Vous n'avez pas besoin de rejoindre explicitement SomeTable, n'est-ce pas cool ? :)

UPDATE SomeTable
SET rankcol = SubQuery.Sort_Order
FROM
    (
    SELECT IDCol, Row_Number() OVER (ORDER BY ValueCOL) as SORT_ORDER
    FROM SomeTable
    ) SubQuery
where SubQuery.IDCol = SomeTable.IDCol

remarque :Postgres est insensible à la casse, mieux vaut utiliser des minuscules, comme row_number , sort_order , id_col , etc.