Det finns ingen direkt funktion för detta, men du kan göra det med en ersätt:
declare @myvar varchar(20)
set @myvar = 'Hello World'
select len(@myvar) - len(replace(@myvar,'o',''))
I grund och botten berättar detta hur många tecken som togs bort, och därför hur många instanser det fanns.
Extra:
Ovanstående kan utökas för att räkna förekomsterna av en flerteckensträng genom att dividera med längden på strängen som söks efter. Till exempel:
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)