web-dev-qa-db-ja.com

SQLを使用して、文字列内の特定の文字の出現回数をどのように見つけることができますか?

SQLを使用して、文字列内の特定の文字の出現回数をどのように見つけることができますか?

例:この文字列に文字「d」が出現する回数を知りたい。

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

どうぞ:

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

もう少し一般的にしたい場合は、探しているものの長さで除算する必要があります。このような:

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回見つかります。

13
Rob Farley

ここにいるすべてのSybase ASE 15恐竜については、 ''をnullに置き換える必要があります。

SELECT LEN(@string) - LEN(REPLACE(@string, 'd', null)) AS D_Count
0
Tiggyboo