Neexistuje pro to žádná přímá funkce, ale můžete to udělat pomocí nahrazení:
declare @myvar varchar(20)
set @myvar = 'Hello World'
select len(@myvar) - len(replace(@myvar,'o',''))
V podstatě vám to říká, kolik znaků bylo odstraněno, a tedy kolik jejich instancí bylo.
Extra:
Výše uvedené lze rozšířit tak, aby počítal výskyty víceznakového řetězce vydělením délkou hledaného řetězce. Například:
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)