我们都知道SQL中适用case when then来转化数据库中的信息 比如 select (case sex when 0 then '男' else '女' end) AS sex from studentInfo 在SQL中,`CASE WHEN THEN` 语句用于条件判断,它可以用来转换或过滤数据,尤其是在聚合函数中,如 `COUNT()`, `SUM()`, `AVG()` 等。这个表达式允许我们在一个查询中根据不同的条件执行不同的操作。 在标题提到的“SQL集合函数中`CASE WHEN THEN` 使用技巧”中,主要讨论了如何利用`CASE WHEN THEN` 结合`COUNT()`函数在聚合查询中统计特定条件的数据。例如,如果我们要统计数据库中学生表(`student`)中不同省份的男女数量,可以采用以下策略: 1. **基础查询**:我们可以简单地查询性别的分布,例如: ```sql SELECT sex FROM student; ``` 2. **按性别分组计数**:接着,我们可以进一步计算每个性别的总人数: ```sql SELECT sex, COUNT(*) AS num FROM student GROUP BY sex; ``` 3. **按性别和省份分组计数**:为了获取每个省份的男女数量,我们需要同时考虑性别和省份: ```sql SELECT sex, province, COUNT(*) AS num FROM student GROUP BY sex, province; ``` 4. **使用`COUNT()`与`CASE WHEN THEN`结合**:这时,我们开始使用`CASE WHEN THEN` 限制计数的范围。例如,只计算浙江省的男女数量: ```sql SELECT sex, COUNT(CASE WHEN province = '浙江省' THEN province END) AS 浙江省 FROM student GROUP BY sex; ``` 5. **扩展到多个省份**:若要统计多个省份的数据,可以在同一查询中添加多个`COUNT(CASE WHEN THEN)`: ```sql SELECT sex, COUNT(CASE WHEN province = '广东省' THEN '广东省' END) AS 广东省, COUNT(CASE WHEN province = '江西省' THEN '江西省' END) AS 江西省, COUNT(CASE WHEN province = '浙江省' THEN '浙江省' END) AS 浙江省 FROM student GROUP BY sex; ``` 在这个查询中,`COUNT(CASE WHEN province = '某省' THEN '某省' END)` 实际上是计算满足条件的行数。即使`COUNT()`函数内部使用的是列名(如`province`),结果也是一样的,因为所有满足条件的行都将被计数一次。然而,使用`CASE WHEN THEN` 可以更灵活地指定我们关心的条件。 此外,`CASE WHEN THEN` 还可以处理缺失值。例如,如果只想统计已知省份,而忽略其他未知省份,可以这样写: ```sql SELECT (CASE province WHEN '浙江省' THEN '浙江' WHEN '江西省' THEN '江西' ELSE NULL END) AS 省份 FROM student; ``` 这里,如果省份不是'浙江省'或'江西省',结果将为NULL。 总结,`CASE WHEN THEN` 结合`COUNT()`函数在SQL聚合查询中非常有用,它允许我们根据特定条件对数据进行筛选和计数,从而得到更有针对性的分析结果。这种技巧在数据分析、报表生成和复杂查询中尤其常见,能够帮助我们更有效地提取和理解数据库中的信息。


























- 粉丝: 4
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 新浪网的网络广告.ppt
- 基于51单片机的自动往返小车.doc
- 项目管理的发展、特点及其在我国的应用研究.doc
- 火车票管理系统C语言程序设计实训报告.docx
- 区工业信息化和商务局2021年工作总结及2022年重点工作安排.docx
- Coreldraw平面教学计划.pdf
- 卫浴企业网站策划方案概要.doc
- tpflow-PHP资源
- 网络监控小区设计及方案海康.doc
- 清华大学-Matlab-GUI设计.ppt
- 《项目管理》笔记.doc
- 最新国家开放大学电大《言语交际》网络核心课形考网考作业及答案.pdf
- 网络大学自我鉴定表范文.doc
- 智慧交通管理和服务平台系统技术推广方案.pdf
- 教师课堂ppt第八章薪酬管理MicrosoftPowerPoint.pptx
- 计算机协会招新总结.docx



- 1
- 2
前往页