Conocer la cantidad de un carácter específico en una cadena de texto


Conocer la cantidad de un carácter 

específico presentes en una cadena de 

texto


Supongamos que tenemos la necesidad de contar cuantos caracteres de un tipo especifico se repite en una expresión de texto, para ellos hay varias soluciones, el día de hoy probaremos la forma que según yo es la mas fácil y practica.

Para poder contar los caracteres de un solo tipo presentes en una expresión podemos hacerlo realizando un recorrido con un while, carácter por carácter y si concuerda con el que estamos buscando entonces se le sumaría uno a una variable que podríamos llamar contador por ejemplo, pero afortunadamente existe una forma que considero la mas fácil, el truco es tener la cantidad de caracteres que tiene una cadena de texto y luego restarle la misma cantidad de caracteres pero omitiendo los caracteres que coincidan con el que deseamos buscar. Para entenderlo de una mejor forma haremos la respectiva explicación en transact de la siguiente forma:


queremos contar cuantas letras "e" hay en el texto siguiente:

--Primero declaramos una variable y le asignamos un valor
declare @texto varchar(255) = 'Este es un texto de prueba que para evaluar un carácter'

--Luego hacemos una consulta de esa variable
select @texto

--Podemos saber su longitud exacta usando la expresión len de la siguiente manera:
select len(@texto)

--Sustituimos el valor de la letra e por un espacio omitido

select replace(@texto,'e','')


Entonces para obtener el resultado que esperamos lo que debemos hacer es restar la longitud de la cadena completa y la longitud de la cadena omitiendo la letra e, que es el carácter que queremos contar de la siguiente forma:

--Restamos la longitud de una con otra omitiendo la letra e como lo vimos en el caso anterior en la 
--segunda expresión

select len(@texto) - len(replace(@texto,'e','') )

El resultado obtenido es el siguiente:


Comentarios

Entradas populares de este blog

Consultas dinámicas

Funciones para análisis Lag y Lead