sql - 如何将当前值替换为定义的字符串
问题描述
查询结果
select ( LENGTH(testid) - LENGTH(replace(testid, '/', '')) ) as num_slashes,
count(*) from test.1 where isdeleted = false group by ( LENGTH(testid) - LENGTH(replace(testid, '/', '')) )
ORDER BY COUNT(*)
从数据库返回:
我想将 0、1、2 替换为 master1、master2、master3。
我应该使用什么查询,所以查询结果将是
解决方案
我将通过使用派生表进行计算num_slashes
,然后使用CASE
表达式将该值转换为字符串来简化您的查询:
SELECT CASE num_slashes WHEN 0 THEN 'master1'
WHEN 1 THEN 'master2'
ELSE 'master3'
END AS number_slashes,
COUNT(*) AS count
FROM (
SELECT ( LENGTH(testid) - LENGTH(replace(testid, '/', '')) ) AS num_slashes
FROM test.1
WHERE isdeleted = false
) t
GROUP BY num_slashes
ORDER BY num_slashes
推荐阅读
- python - 品脱列表转换
- ruby-on-rails - 设计与远程身份验证和本地数据库身份验证的集成
- python - 如何定期更新对象配置?
- php - sql中的COUNT函数计算数据库中的整个数据
- java - 如何模拟具有高回报的 hasNext
- reporting-services - 如何对不同的表达式应用不同的过滤器?
- c# - 如何在 Windows 窗体应用程序中制作下拉菜单
- windows - 在文件中查找包含回车符的字符串 - Windows 批处理
- java - 当我从 github https://github.com/smarteist/android-image-slider 使用这个库时,无法解析符号“动画”
- angularjs - uib模式上的ckEditor在角度js中不起作用