Página 1 de 1

Quantidade de Ocorrências

Enviado: Ter, 21 Mar 2006 4:05 pm
por moacirm
Algém sabe me dizer se existe alguma função do Oracle que retorna o numero de ocorrências de uma letra ou numero dentro de uma string?

Ex: tenho uma string '12341325448' e quero saber quantas vezes aparecem o numero '4'.

Enviado: Ter, 21 Mar 2006 5:24 pm
por dr_gori
Não possui essa função.

Mas é possível facilmente você criar uma função que faça isso, pois no oracle existe a função INSTR. (que retorna qual é a posição de uma string dentro de outra)...

Ou seja, basta você fazer um LOOP e contar.

Neste caso, vai procurar onde está a letra C na string passada.

Selecionar tudo

SQL> SELECT INSTR('ABCDEFG', 'C') FROM DUAL
  2  /

INSTR('ABCDEFG','C')
--------------------
                   3

SQL> 
Neste caso, vai procurar onde está a letra C dentro da string, começando pelo caracter 4 em diante.

Selecionar tudo

SQL> SELECT INSTR('ABCDEFGxxxABCD', 'C', 4) FROM DUAL;

INSTR('ABCDEFGXXXABCD','C',4)
-----------------------------
                           13

SQL> 
:-o

Enviado: Sex, 31 Mar 2006 11:07 pm
por mportes
Quem sabe assim?

Selecionar tudo

SQL> select length('12341325448') - length(replace('12341325448', '4', null)) from dual;

LENGTH('12341325448')-LENGTH(REPLACE('12341325448','4',NULL))
-------------------------------------------------------------
                                                            3

1 row selected.

Agradecimentos

Enviado: Qua, 10 Jun 2009 12:14 pm
por anderson.diniz
Marcio Portes

tu é o cara .. valeu demais ...