SQL基础系列(七)——CASE表达式

本文详细介绍了SQL中的CASE表达式,包括基本语句、执行逻辑和多种使用场景,如根据条件分类、统计和与GROUP BY的组合使用。通过案例展示了如何利用CASE表达式进行数据分类和统计分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在SQL语句中,CASE表达式是非常重要的函数,在区分不同情况时常使用。

本文介绍CASE表达式的基本语句,语句的基本执行逻辑及使用场景。在使用场景中将以实例展示CASE表达式的用法。

目录

1.基本语句

2.语句基本执行逻辑

3.使用场景

3.1根据条件进行分类

3.2分类统计

3.3与GROUP BY的不同

3.4和GROUP BY 组合使用


1.基本语句

CASE WHEN <求值表达式> THEN <表达式>
     WHEN <求值表达式> THEN <表达式>
     WHEN <求值表达式> THEN <表达式>
     WHEN <求值表达式> THEN <表达式>
     ELSE <表达式>
END

在<求值表达式>中,会采用“列=值”的写法,表达式中也可以使用<>, LIKE,BETWEEN AND,等谓词。

在<求值表达式>中,可以使用AND或者OR写多个条件。

基本语句示例:

CASE WHEN sex='1' THEN '男'
     WHEN sex='2' THEN '女'
     ELSE '其他'
END

2.语句基本执行逻辑

对于数据表中的每一条记录,CASE表达式会从第一个WHEN开始执行判断,如果返回结果为真(TRUE),那么就返回THEN中的表达式。CASE表达式的执行结束。

如果第一个WHEN执行结果不为真,那么就继续执行下一个WHEN,直到有一个为真,返回THEN中的表达式。CASE表达式的执行结束。

如果所有的WHEN都不为真,那么返回ELSE表达式的结果。执行结束。

CASE语句在执行时,最终会返回一个值,即使写了几十行WHEN THEN,但是CASE表达式执行一次之后,也只会返回简单的值,比如上个示例中的’女‘、’男‘或者’其他‘。

3.使用场景

预先设定grade表,表中是一个班里学生的数学期末考试成绩:

id name score sex
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值