Подтвердить что ты не робот

Как вы можете найти количество вхождений конкретного символа в строке с помощью sql?

Как вы можете найти количество вхождений конкретного символа в строке с помощью sql?

Пример: я хочу найти количество раз, когда в этой строке появляется буква "d".

declare @string varchar(100)
select @string = 'sfdasadhfasjfdlsajflsadsadsdadsa'
4b9b3361

Ответ 1

Здесь вы идете:

declare @string varchar(100)
select @string = 'sfdasadhfasjfdlsajflsadsadsdadsa'
SELECT LEN(@string) - LEN(REPLACE(@string, 'd', '')) AS D_Count

Ответ 2

Если вы хотите сделать его более общим, вы должны разделить по длине вещи, которую вы ищете. Вот так:

declare @searchstring varchar(10);
set @searchstring = 'Rob';

select original_string, 
(len(orginal_string) - len(replace(original_string, @searchstring, '')) 
   / len(@searchstring)
from someTable;

Это потому, что каждый раз, когда вы находите "Rob", вы удаляете три символа. Поэтому, когда вы удаляете шесть символов, вы дважды нашли "Роб".