sql >> Base de Datos >  >> RDS >> Sqlserver

Número de veces que aparece un carácter en particular en una cadena

No hay una función directa para esto, pero puede hacerlo con un reemplazo:

declare @myvar varchar(20)
set @myvar = 'Hello World'

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

Básicamente, esto le dice cuántos caracteres se eliminaron y, por lo tanto, cuántas instancias hubo.

Adicional:

Lo anterior se puede extender para contar las ocurrencias de una cadena de varios caracteres dividiendo por la longitud de la cadena que se busca. Por ejemplo:

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)