对于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 '%,%'
SELECT LEN(RequestedReportParams) - LEN(REPLACE(RequestedReportParams, ',', '')) FROM YourTable WHERE .....
这只是将列的长度与逗号进行比较,将值的长度与除去的逗号进行比较,以得出差值(即逗号的数目)