Em 17 de fevereiro de 2010 17:52, Marcos Bernardelli
<[email protected]> escreveu:
> Boa tarde senhores(as)!
> Preciso fazer um UPDATE da seguinte forma:
>
> Tenho uma tabela com dois campos (indice, valor). Exemplo:
>
> indice | valor
> --------------
> NULL   |   150
> NULL   |   400
> NULL   |   350
> NULL   |    50
> NULL   |   135
>
>
> O update deverá atribuir um valor ao índice em ordem decrescente de valor,
> ou seja, a tabela acima ficaria assim:
>
> indice | valor
> --------------
> 3      |   150
> 1      |   400
> 2      |   350
> 5      |    50
> 4      |   135
>
> Sugestões?
>


Crie uma sequência temporária:
CREATE TEMP SEQUENCE seq;
Atualize sua tabela utilizando esta sequência:
UPDATE tabela SET indice = nextval('seq')
    FROM (SELECT valor FROM tabela ORDER BY valor) foo WHERE
tabela.valor = foo.valor;

Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a