Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Nombre de fois qu'un caractère particulier apparaît dans une chaîne

Il n'y a pas de fonction directe pour cela, mais vous pouvez le faire avec un remplacement :

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

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

En gros, cela vous indique combien de caractères ont été supprimés, et donc combien d'instances il y en avait.

Supplément :

Ce qui précède peut être étendu pour compter les occurrences d'une chaîne multi-caractères en divisant par la longueur de la chaîne recherchée. Par exemple :

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)