Không có chức năng trực tiếp nào cho việc này, nhưng bạn có thể thực hiện bằng chức năng thay thế:
declare @myvar varchar(20)
set @myvar = 'Hello World'
select len(@myvar) - len(replace(@myvar,'o',''))
Về cơ bản, điều này cho bạn biết có bao nhiêu ký tự đã bị xóa và do đó có bao nhiêu trường hợp của nó.
Thêm:
Phần trên có thể được mở rộng để đếm số lần xuất hiện của một chuỗi nhiều ký tự bằng cách chia cho độ dài của chuỗi đang được tìm kiếm. Ví dụ:
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)