Thank you. It really worked.
Try
something along the lines of: UPDATE
operador SET idoperador = new_idoperador FROM
(
SELECT idoperador AS old_idoperador, ROW_NUMBER() OVER (ORDER BY idoperador) AS
new_idoperador
FROM operador )
lookup WHERE
operador.idoperador = lookup.old_idoperador; The
basic ideas is to create a lookup table and use it in via a FROM clause attached
to the UPDATE. David
J. From:
pgsql-general-owner@xxxxxxxxxxxxxx [mailto:pgsql-general-owner@xxxxxxxxxxxxxx]
On Behalf Of Efraín Déctor Hello. I have a table that
his primary key is not ordered is something like
this: 1
- a 12 -
b 123 -
c etc. I want to do an update
to make it like this 1 –
a 2 –
b 3 – c
I tried
this: UPDATE operador SET
idoperador=(SELECT row_number() OVER (ORDER BY idoperador) from
operador) But it returns this
error: more than one row returned by a subquery used as an _expression_ and I know
that is because the substring returns more than one row, but how can I use the
subquery to perform the update?. Thank you in
advance |