SCHEMA/DATA为表:计数逗号分隔值
SubscriberId NewsletterIdCsv
------------ ---------------
11 52,52,,52
我们这种非规范化的数据,在这里我需要统计逗号分隔值的数量,为此我这样做:
SELECT SUM(len(newsletteridcsv) - len(replace(rtrim(ltrim(newsletteridcsv)), ',','')) +1) as SubscribersSubscribedtoNewsletterCount
FROM TABLE
WHERE subscriberid = 11
结果:
SubscribersSubscribedtoNewsletterCount
--------------------------------------
4
的问题是我们的一些数据有空白/空格逗号之间如果我运行上面的查询,预期的结果应该是3(因为其中一个值是空格),如何检查我的查询以排除空格?
编辑:
DATA:
SubscriberId NewsletterIdCsv
------------ ---------------
11 52,52,,52
12 22,23
我需要一个累积SUM而不是仅仅每行之和,所以对于这个上面的数据,我需要有只是一个最终计数即5本情况,不包括空格。
我认为更复杂但最理想的方法是创建CLR函数。 – 2013-02-15 19:50:27
如何不以这种方式存储数据? – 2013-02-16 05:35:53
@Aaron Bertrand这个问题不涉及规范化数据,我知道这是最佳解决方案。 – 2013-02-20 14:38:53