admin

如何计算一个字符出现在SQL列中的次数?

sql

对于SQL数据库中的用户日志记录表,我跟踪报告请求中的某些参数。该报告允许将多个ID传递给它,我将所有ID都存储在数据库列的单个列中。如果这是一组标准化的数据,则肯定会有一个附加的表设置,但这就是继承的内容。。。

现在,我被要求提供一个传递了2个以上ID的报告的运行次数的快速计数。我可以轻松获取请求的报告数量超过1个的记录的数量,因为它们都包含逗号。

接下来需要做的是计算逗号在列中出现的次数。 您如何在SQL中执行此操作?

--count the number of times more than 1 report was requested in the record
select 
    count(*) as cnt
from
    [table]
where
    RequestedReportParams Like '%,%'

阅读 154

收藏
2021-05-10

共1个答案

admin

SELECT LEN(RequestedReportParams) - LEN(REPLACE(RequestedReportParams, ',', ''))
FROM YourTable
WHERE .....

这只是将列的长度与逗号进行比较,将值的长度与除去的逗号进行比较,以得出差值(即逗号的数目)

2021-05-10