SQL Server单行双值统计及含welding与plumbing的公司计数方法
SQL Server 数据表统计问题解法
问题1:统计单行描述中的服务值数量
由于描述字段里的服务用逗号、空格两种分隔符,还有前后多余空格的情况,我们可以先统一处理分隔符,再拆分统计:
SELECT company, description, -- 处理分隔符并统计有效服务数量 (SELECT COUNT(*) FROM STRING_SPLIT( TRIM(REPLACE(REPLACE(description, ' ', ','), ',,', ',')), ',' ) WHERE value <> '') AS service_count FROM your_table_name;
说明:先把空格替换成逗号,再把连续的逗号换成单个,用TRIM去掉前后空格,最后拆分字符串并排除空值,统计每行的服务数量。
问题2:统计同时包含welding和plumbing的公司数量
直接检查描述字段中是否同时存在两个关键词即可,不管分隔符是逗号还是空格:
SELECT COUNT(*) AS company_count FROM your_table_name WHERE CHARINDEX('welding', description) > 0 AND CHARINDEX('plumbing', description) > 0;
说明:CHARINDEX函数会返回关键词在字符串中的位置,大于0表示存在。用AND连接两个条件,就能筛选出同时包含两个服务的公司,最终统计数量。
内容的提问来源于stack exchange,提问作者Richa
相关产品推荐
相关产品推荐

