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 > > > >