Eloísa

Não testei aqui... mas tente aí:

select teste, rn, teste || rn AS teste_seq
FROM (
   SELECT t.teste, ROW_NUMBER() OVER (PARTITION BY t.teste) AS rn
   FROM titulo t
);


ROW_NUMBER é função analítica e também aceita um critério de ordenação para
essa numeração.
Por exemplo, se você tiver uma coluna de DATA_INCLUSAO, poderia usá-la
assim:

select teste, rn, teste || rn AS teste_seq
FROM (
   SELECT t.teste, ROW_NUMBER() OVER (PARTITION BY t.teste ORDER BY
t.data_inclusao) AS rn
   FROM titulo t
);

[ ]

André



Em 27 de julho de 2014 17:38, elo_...@yahoo.com.br [oracle_br] <
oracle_br@yahoogrupos.com.br> escreveu:

>
>
> Boa tarde pessoal,
>
>
> Estou com a seguinte dúvida, vejam se podem me ajudar.
>
>
> Tenho os códigos de 4 caracteres..
>
> Ex: ABCD ( QUERO COLOCAR CONTADOR NO FINAL .. QUANDO JÁ EXISTIR A
> SEQUENCIA + 1 E SE NÃO EXISTIR COLOCAR 1
>
> EX: ABCD ira gerar ABCD1
>       ABCD1 ira gerar ABCD2...
>
>      BCDE ira gerar BCDE1
>       BCDE1 ira gerar ABCDE2..
>
>
>
> Olha o código que estou tentando fazer:
>
> SELECT distinct (t.teste), (count(substr(t.teste ,1 , 4 )))  as grau2,
> Case when (count(substr(t.teste ,1 , 4 ))) <=1 then (t.teste)||
> ((count(substr(t.teste ,1 , 4 )))) end
> FROM titulo t
> Group by t.teste;
>
> Porém retorna:
> ABCD gerou ABCD1  (OK)
> ABCD1 gerou ABCD11 (ERRADO)
>
> Desde já agradeço,
>
> Eloisa
>
>
>  
>

Responder a