Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Número de vezes que um determinado caractere aparece em uma string


Não há função direta para isso, mas você pode fazer isso com um replace:
declare @myvar varchar(20)
set @myvar = 'Hello World'

select len(@myvar) - len(replace(@myvar,'o',''))

Basicamente, isso informa quantos caracteres foram removidos e, portanto, quantas instâncias havia.

Extra:

O acima pode ser estendido para contar as ocorrências de uma string com vários caracteres, dividindo-se pelo comprimento da string que está sendo pesquisada. Por exemplo:
declare @myvar varchar(max), @tocount varchar(20)
set @myvar = 'Hello World, Hello World'
set @tocount = 'lo'

select (len(@myvar) - len(replace(@myvar,@tocount,''))) / LEN(@tocount)