Oracle - Contar ocurrencias de un caracter

 
Vista:

Contar ocurrencias de un caracter

Publicado por ramon (2 intervenciones) el 14/06/2005 17:25:21
¿Como puedo contar cuantas ocurrencias hay de un caracter dentro de una cadena?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Contar ocurrencias de un caracter

Publicado por trazom (28 intervenciones) el 14/06/2005 19:31:57
Para contar la cantidad de '#' en un string:

Connected to Oracle9i Enterprise Edition Release 9.2.0.5.0
Connected as oe

SQL> select * from t;

C
----------
bs@#$%%#B#
###s#d#f

SQL> select length(c) - length(replace(c,'#')) from t;

LENGTH(C)-LENGTH(REPLACE(C,'#'
------------------------------
3
5

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Contar ocurrencias de un caracter

Publicado por Christian (1 intervención) el 16/01/2012 17:24:04
Excelente muy ingenioso trazom a pesar de ser tema antiiiguo me ha servido mucho. Solo aportar que debiera ir +1 en la query para que de la cantidad exacta. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Contar ocurrencias de un caracter

Publicado por Trueno Chileno (1 intervención) el 09/05/2013 20:52:51
-- Contamos cantidad de caracter ',' dentro de cada string.
v_cont := length('asasas,1212eer,weert,555') - length(REPLACE('asasas,1212eer,weert,555',','))+1;

v_nemo := trim('asasas,1212eer,weert,555');
.
.
.
--string cortado antes de coma.
substr(v_nemo,1,instr(v_nemo||',',',') -1)
.
.
.
-- se corta string restante por analizar
v_nemo := substr(v_nemo,instr(v_nemo||',',',')+1,length(v_nemo) );
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Contar ocurrencias de un caracter

Publicado por Geo MOrales (2 intervenciones) el 31/10/2014 18:13:05
Excelente IDEA, Gracias.
Asi de Facil: select length(c) - length(replace(c,'#'))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Contar ocurrencias de un caracter

Publicado por Geo MOrales (2 intervenciones) el 31/10/2014 18:14:47
Excelente IDEA, Gracias.
Asi de Facil: select length(c) - length(replace(c,'#'))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Contar ocurrencias de un caracter

Publicado por Alixandro (63 intervenciones) el 13/05/2013 16:39:25
Ramon, mira este codigo, simple, facil de usar y por demas reutilizable. puedes crear una funcion, procedure o incluilo en tu package.

Function ContarStrg(CadenaStrg In Varchar2, Strg In Varchar2 Default ',') Return Number Is
vLongitud Number(10);
vContador Number := 0;
vCaracter Varchar2(1);
Begin
vLongitud:= length(CadenaStrg);
For i In 1..vLongitud Loop
vCaracter := Substr(CadenaStrg,i,1);
If vCaracter = Strg Then
vContador := vContador + 1;
End If;
End Loop;
Return vContador;
Exception When Others Then
Return vContador;
End ContarStrg;

Como funcina:

1- Select Tdom_Utilidades.ContarStrg('RAMON,WEBDELPROGRAMADOR','R') as xxxx From dual;

2- Select Tdom_Utilidades.ContarStrg('RAMON,WEBDELPROGRAMADOR',',') as xxxx From dual

3- Select Tdom_Utilidades.ContarStrg('CLARINO70,WEBDELPROGRAMADOR','A') as xxxx From dual

4- ETC.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Contar ocurrencias de un caracter

Publicado por Haso (1 intervención) el 22/06/2022 23:25:46
Funciona excelente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

conteo.

Publicado por Diego (2 intervenciones) el 17/08/2013 01:07:00
Con este sabes cuantos '|' hay.

SELECT LENGTH('ABCD|HDGH|GGFD') - LENGTH(REPLACE('ABCD|HDGH|GGFD', '|', '')) FROM DUAL
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar