news 2026/4/23 18:55:45

SQL新手必学:CASE WHEN从入门到精通

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SQL新手必学:CASE WHEN从入门到精通

快速体验

  1. 打开 InsCode(快马)平台 https://www.inscode.net
  2. 输入框内输入如下内容:
创建一个循序渐进的新手学习教程,包含:1. 基础CASE WHEN语法示例 2. 单条件判断练习 3. 多条件组合案例 4. 嵌套CASE WHEN示范。每个步骤都提供可交互的代码示例和解释说明。要求使用最简单的表结构(如学生成绩表),输出格式要适合初学者理解。使用DeepSeek模型生成教学内容。
  1. 点击'项目生成'按钮,等待项目生成完整后预览效果

SQL新手必学:CASE WHEN从入门到精通

刚开始学SQL的时候,看到CASE WHEN这个语法总觉得有点复杂,但实际用起来才发现它简直是数据处理的神器。今天我就用最通俗的方式,带大家一步步掌握这个超级实用的条件判断语句。

基础语法:理解CASE WHEN的结构

CASE WHEN的语法其实很像我们平时说话的逻辑。比如:"如果成绩大于90分,就是优秀;否则如果大于60分,就是及格;否则就是不及格"。转换成SQL就是:

  1. CASE WHEN 条件1 THEN 结果1
  2. WHEN 条件2 THEN 结果2
  3. ...
  4. ELSE 默认结果
  5. END

举个最简单的例子,我们有个学生成绩表,想给成绩分类:

  • 90分以上为A
  • 80-89为B
  • 70-79为C
  • 60-69为D
  • 60分以下为E

对应的SQL语句就是:

SELECT student_name, score, CASE WHEN score >= 90 THEN 'A' WHEN score >= 80 THEN 'B' WHEN score >= 70 THEN 'C' WHEN score >= 60 THEN 'D' ELSE 'E' END AS grade FROM student_scores;

单条件判断练习

先来练习最简单的单条件判断。假设我们只需要判断学生是否及格:

SELECT student_name, score, CASE WHEN score >= 60 THEN '及格' ELSE '不及格' END AS pass_status FROM student_scores;

这个例子中,我们只用了两个分支: - 当分数≥60时返回"及格" - 其他情况返回"不及格"

多条件组合案例

实际工作中,我们经常需要组合多个条件。比如,除了分数,我们还想考虑出勤率:

SELECT student_name, score, attendance_rate, CASE WHEN score >= 90 AND attendance_rate > 0.9 THEN '优秀学生' WHEN score >= 80 AND attendance_rate > 0.8 THEN '良好学生' WHEN score >= 60 AND attendance_rate > 0.7 THEN '合格学生' ELSE '需要改进' END AS student_level FROM student_scores;

这里我们同时考虑了分数和出勤率两个条件,用AND连接。注意条件的顺序很重要,SQL会从上到下依次判断,一旦满足某个条件就会返回对应的结果。

嵌套CASE WHEN示范

对于更复杂的逻辑,我们可以嵌套使用CASE WHEN。比如先按分数分级,再在每个级别内细分:

SELECT student_name, score, CASE WHEN score >= 90 THEN CASE WHEN score = 100 THEN '满分学霸' ELSE '优秀学生' END WHEN score >= 80 THEN '良好学生' WHEN score >= 60 THEN '合格学生' ELSE '需要努力' END AS student_level FROM student_scores;

这个例子中,我们对90分以上的学生又做了细分:如果是100分,标记为"满分学霸";其他90分以上标记为"优秀学生"。

实际应用技巧

  1. 别忘了END:每个CASE语句都必须以END结束
  2. ELSE是可选的:如果不写ELSE,不符合任何条件时会返回NULL
  3. 条件顺序很重要:SQL会按顺序判断,所以要把最严格的条件放前面
  4. 可以用于任何地方:SELECT、WHERE、ORDER BY等子句都可以用CASE WHEN
  5. 性能考虑:复杂的嵌套CASE WHEN可能会影响查询性能

在InsCode(快马)平台上实践

我最近在InsCode(快马)平台上练习SQL,发现特别适合新手。它的交互式环境让我可以实时看到查询结果,不用自己搭建数据库环境。比如上面的例子,我直接输入SQL就能看到执行效果,还能保存自己的练习记录。

对于想学SQL的朋友,我强烈建议从CASE WHEN开始练习。它不仅能帮你理解条件逻辑,还能处理很多实际业务场景,比如数据分类、条件计算等。记住,多写多练才是掌握SQL的关键!

快速体验

  1. 打开 InsCode(快马)平台 https://www.inscode.net
  2. 输入框内输入如下内容:
创建一个循序渐进的新手学习教程,包含:1. 基础CASE WHEN语法示例 2. 单条件判断练习 3. 多条件组合案例 4. 嵌套CASE WHEN示范。每个步骤都提供可交互的代码示例和解释说明。要求使用最简单的表结构(如学生成绩表),输出格式要适合初学者理解。使用DeepSeek模型生成教学内容。
  1. 点击'项目生成'按钮,等待项目生成完整后预览效果
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 11:05:30

Qwen3-Embedding-4B法律场景案例:合同相似度比对实战

Qwen3-Embedding-4B法律场景案例:合同相似度比对实战 在法律科技实践中,合同审查、条款比对、风险识别等任务长期依赖人工经验,效率低、成本高、一致性差。当面对数百份采购协议、数十版劳动合同或跨年度的框架协议修订稿时,如何…

作者头像 李华
网站建设 2026/4/22 22:50:43

亲测好用!本科生毕业论文AI论文网站TOP10测评

亲测好用!本科生毕业论文AI论文网站TOP10测评 学术写作工具测评:为何需要一份权威榜单? 随着AI技术的不断进步,越来越多的本科生开始依赖AI论文网站来提升写作效率与质量。然而,面对市场上琳琅满目的工具,如…

作者头像 李华
网站建设 2026/4/23 3:11:19

视频下载工具高效解决方案:零基础掌握B站视频本地保存技巧

视频下载工具高效解决方案:零基础掌握B站视频本地保存技巧 【免费下载链接】BBDown Bilibili Downloader. 一款命令行式哔哩哔哩下载器. 项目地址: https://gitcode.com/gh_mirrors/bb/BBDown 你是否经常遇到想保存B站视频却找不到简单方法的困扰&#xff1f…

作者头像 李华
网站建设 2026/4/23 16:55:02

3种场景突破付费限制:信息获取工具完全使用指南

3种场景突破付费限制:信息获取工具完全使用指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 你是否在研究某一学术课题时,因无法访问核心期刊全文而停滞不前…

作者头像 李华
网站建设 2026/4/18 22:59:51

BBDown全攻略:本地视频下载工具的高效使用指南

BBDown全攻略:本地视频下载工具的高效使用指南 【免费下载链接】BBDown Bilibili Downloader. 一款命令行式哔哩哔哩下载器. 项目地址: https://gitcode.com/gh_mirrors/bb/BBDown 在数字内容爆炸的时代,我们时常遇到想要保存优质视频却受限于在线…

作者头像 李华
网站建设 2026/4/18 14:01:03

解锁微信小程序逆向解析:wxappUnpacker实战指南

解锁微信小程序逆向解析:wxappUnpacker实战指南 【免费下载链接】wxappUnpacker 项目地址: https://gitcode.com/gh_mirrors/wxappu/wxappUnpacker 微信小程序逆向解析工具wxappUnpacker是一款专注于源码还原的技术利器,专为学习研究场景设计。通…

作者头像 李华