Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Numero di volte in cui un particolare carattere appare in una stringa

Non esiste una funzione diretta per questo, ma puoi farlo con una sostituzione:

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

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

Fondamentalmente questo ti dice quanti caratteri sono stati rimossi e quindi quante istanze c'erano.

Extra:

Quanto sopra può essere esteso per contare le occorrenze di una stringa multi-char dividendo per la lunghezza della stringa cercata. Ad esempio:

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)