1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Utilizar um UPDATE no PostgreSQL 8.3.16 usando LOOP do PLPGSQL

Boa noite pessoas,

Possuo duas tabelas cuja a coluna de uma delas possui alguns campos repetidos. Minha ideia é incrementar um valor (n) no final do valor da coluna com base em seu COUNT(valor_repetido) > 1.

A versão que uso do POSTGRE não possuí DENSE_RANK(),ROW_NUMBER() entre outros comandos que seriam uma mão na roda nessa situação, por isso até agora não encontrei nenhuma solução viável.

Gostaria de fazer algo como

FOR contador SELECT campo_repetido,chave_estrangeira,COUNT(campo_repetido) FROM tabela_1 GROUP BY campo_repetido,chave_estrangeira LOOP UPDATE tabela_1 SET campo_repetido = campo_repetido || contador where id = ? END LOOP;

No entanto, não posso usar o id em uma cláusula GROUP BY pois ele incapacitaria a ideia do COUNT(campo_repetido) > 1, já que os ids dos campos_repetidos são distintos.

Alguém tem alguma ideia de como resolver esse pequeno problema ?

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags sql banco-de-dados post ou faça a sua própria pergunta.