Как вы можете найти количество вхождений определенного символа в строку, используя sql? - PullRequest
24 голосов
/ 13 ноября 2008

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

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

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

Ответы [ 2 ]

56 голосов
/ 13 ноября 2008

Вот, пожалуйста:

declare @string varchar(100)
select @string = 'sfdasadhfasjfdlsajflsadsadsdadsa'
SELECT LEN(@string) - LEN(REPLACE(@string, 'd', '')) AS D_Count
12 голосов
/ 11 марта 2010

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

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

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

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

...