Últimas Novidades

Como descobrir quantas vezes um caracter se repete

Estava procurando na internet alguma função que me mostre quantas vezes, determinado caracter, se repete em um campo do tipo VARCHAR. Por exemplo, quantas vezes o sinal "?" (interrogação) apareceu? Quantos * (asterísticos) foram digitados e por aí vai.
Normalmente para se saber a quantidade de caracteres de um determinado item basta se usar a função LEN, mas esta me trás o tamanho do registro, por exemplo:

SELECT LEN('MEU CAMPO') TOTAL


O meu resultado será 9 - lembre-se que ele conta o espaço como um caracter. Mas esta não me resolvia pois eu quero saber quantas vezes um item foi repetido e não a quantidades de itens na frase. Pesquisando achei o seguinte script:

DECLARE @TextoProcura VARCHAR(500) , @CaracterBusca VARCHAR(1) 
SET @CaracterBusca='?'
SET @TextoProcura='Conteúdo?do?registro?em?questao?para?contar?o?caracter' 
SELECT LEN(@TextoProcura) - LEN(REPLACE(@TextoProcura, @CaracterBusca, '')) repeticoes


O resulta desta consulta será 8, pois o sinal ? aparece 8 vezes no texto informado. Se você deseja que seja realizado a mesma consulta em uma tabela já fica seque a dica:

SELECT NOME_DO_CAMPO, (LEN(NOME_DO_CAMPO) -  LEN(REPLACE(NOME_DO_CAMPO,'.','') )) repeticoes FROM SUA_TABELA


Espero que estas funções tenham ajudado alguém assim como me ajudou.
Gostou do mesmo, comente aí em baixo.

Nenhum comentário