如何使用 sql 查找字符串中特定字符的出现次数?

Posted

技术标签:

【中文标题】如何使用 sql 查找字符串中特定字符的出现次数?【英文标题】:How can you find the number of occurrences of a particular character in a string using sql? 【发布时间】:2010-09-22 04:33:30 【问题描述】:

示例:我想查找字母“d”在此字符串中出现的次数。

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

【问题讨论】:

哪个数据库?也许是 mysql 请给它一个更具描述性的标题,您会看到更好的结果。 答案可能是特定于数据库的,所以请告诉大家您使用的是什么数据库。 【参考方案1】:

对于我们那里的所有 Sybase ASE 15 恐龙,您需要将 '' 替换为 null,即

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

【讨论】:

作为处理旧 Sybase 安装的人,非常感谢...【参考方案2】:

如果你想让它更通用一点,你应该除以你要找的东西的长度。像这样:

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 的列。并且该原理适用于任何数据库,您只需要找到等效的功能即可。【参考方案3】:

给你:

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

【讨论】:

可爱,我正在考虑使用 charindex 进行迭代,我更喜欢这个。 我同意 vfilby 并且可以确认此代码在 SQL Server 2005 和 2008 中有效。 我是 MySql 用户。而且绝对不是大师。 MySQL 中 D_Count 的等效值是多少? D_Count 只是该列的别名。我不知道你是如何在 MySql 中设置的 您还应该除以您要查找的内容的长度。该脚本有效,因为“d”只有一个字符长。如果您正在寻找“as”,则必须将答案除以二。

以上是关于如何使用 sql 查找字符串中特定字符的出现次数?的主要内容,如果未能解决你的问题,请参考以下文章

Excel如何统计某单元格内特定字符串出现的次数

查找并打印出字符串中特定字符的出现次数 (shell/AIX)

16.查找特定字符出现的次数

如何在mongodb聚合中查找搜索字符串的出现次数?

Js对象(五)如何查找字符串中出现次数最多的字符 2021-11-24

如何计算特定字母在字符串中出现的次数? (C++)