SQLを使用して、文字列内の特定の文字の出現回数をどのように見つけることができますか?
例:この文字列に文字「d」が出現する回数を知りたい。
declare @string varchar(100)
select @string = 'sfdasadhfasjfdlsajflsadsadsdadsa'
どうぞ:
declare @string varchar(100)
select @string = 'sfdasadhfasjfdlsajflsadsadsdadsa'
SELECT LEN(@string) - LEN(REPLACE(@string, 'd', '')) AS D_Count
もう少し一般的にしたい場合は、探しているものの長さで除算する必要があります。このような:
declare @searchstring varchar(10);
set @searchstring = 'Rob';
select original_string,
(len(orginal_string) - len(replace(original_string, @searchstring, ''))
/ len(@searchstring)
from someTable;
これは、「Rob」を見つけるたびに3文字を削除するためです。したがって、6文字を削除すると、「Rob」が2回見つかります。
ここにいるすべてのSybase ASE 15恐竜については、 ''をnullに置き換える必要があります。
SELECT LEN(@string) - LEN(REPLACE(@string, 'd', null)) AS D_Count