如何使用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' 后,都会删除三个字符。所以当你删除六个字符时,就相当于找到了两次 'Rob'。someTable
的表,该表有一个名为 original_string
的列。而且这个原则适用于任何数据库,你只需要找到相应的函数即可。 - Rob Farley对于所有的Sybase ASE 15老用户,您需要将''替换为null,即
SELECT LEN(@string) - LEN(REPLACE(@string, 'd', null)) AS D_Count