Ir para conteúdo
wowsatos

Increment in variable on select

Recommended Posts

Pessoal, boa tarde.

 

Eu sou novato por aqui e já procurei diversas maneiras encontrar algo parecido com o abaixo, mas não obtive sucesso.

 

O que estou tentando fazer é um identificador, que incremente 1 sempre que o valor da coluna mudar. porém row_number não resolve nesse caso.

 

Não sei se existe uma maneira de fazer isso.

 

R_ID    (O QUE PRECISO)

1                      1

1                      1

1                      1

2                      2

2                      2

2                      2

1                      3

1                      3

1                      3

 

 

   case
        when
            lag(r_id,1,0) over (order by r_id) = r_id
        then
             :teste

        ELSE

             :teste := (teste +1)   
    end
    rr_id

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá para fazer por trigger , veja um exemplo semelhante ao pedido.

 

https://dba.stackexchange.com/questions/47473/trigger-to-increment-a-column-value-after-update-in-a-column-of-same-table

 

Algo assim

 

 

create trigger increment

Before update on Tabela

begin

  if :old.r_id <> :new.r_id then

      :new.r_increment := :new.r_increment +1;

  end if;

end;

 

Inicializar o campo com zero , dá para melhorar este código , estou num tablet depois edito uma solução melhor.

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hour ago, Motta said:

Dá para fazer por trigger , veja um exemplo semelhante ao pedido.

 

https://dba.stackexchange.com/questions/47473/trigger-to-increment-a-column-value-after-update-in-a-column-of-same-table

 

Algo assim

 

 

create trigger increment

Before update on Tabela

begin

  if :old.r_id <> :new.r_id then

      :new.r_increment := :new.r_increment +1;

  end if;

end;

 

Inicializar o campo com zero , dá para melhorar este código , estou num tablet depois edito uma solução melhor.

Opa, boa noite. Muito obrigado pela atenção.

 

Show, mas aí só funcionaria no caso de estar inserindo um novo registro. No caso eu estou fazendo um select.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.