SQL CASE表达式(CASE···WHEN)

SQL中,CASE...WHEN表达式用于在查询结果中根据条件返回不同的值。它的语法通常如下:

复制代码
sql 复制代码
CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE default_result
END

下面是一个简单的例子,演示了如何使用CASE...WHEN表达式:

复制代码
sql 复制代码
SELECT 
    student_name,
    CASE
        WHEN score >= 90 THEN 'A'
        WHEN score >= 80 THEN 'B'
        WHEN score >= 70 THEN 'C'
        WHEN score >= 60 THEN 'D'
        ELSE 'F'
    END AS grade
FROM 
    student_scores;

在这个例子中,根据学生的分数来判断其等级(A、B、C、D、F),并将结果作为新的列返回。如果学生的分数大于等于90,那么他们的等级是'A',如果分数在80到90之间,等级是'B',以此类推。最后一个ELSE子句指定了默认的等级为'F'。

CASE...WHEN表达式可以嵌套使用,也可以在SELECTWHEREORDER BY等语句中使用,用于根据不同的条件生成不同的结果。这使得它成为SQL中非常灵活和强大的工具之一。

相关推荐
奇树谦5 小时前
《现代 Key-Value 数据库原理:从 B+Tree 到 LSM Tree》-第三篇:LMDB 深度解析二
数据库·oracle·lsm-tree
提笔了无痕5 小时前
Agent 上下文管理详解、Context设计与构建
数据库·oracle·agent·context
xieliyu.5 小时前
Java 文件IO :File 文件类、字节流、字符流讲解
java·ide·笔记·javaee
用户7152287381415 小时前
数据库字段冗余,真的只是用空间换时间吗?
数据库
johnny2335 小时前
用SQL查MQ:Trino、PGMQ、KsqlDB、Proton、OpenLooKeng、KarelDB
sql
沉下去,苦磨练!5 小时前
Human‑in‑the‑Loop
数据库·oracle
云烟成雨TD5 小时前
Micrometer 系列【28】Spring Boot Actuator | 其他指标速览
java·spring boot·云原生
meilindehuzi_a6 小时前
深入理解 Linux 进程地址空间:从虚拟内存、页表映射到 fork 写时拷贝与 VMA 管理
java·linux·服务器
莫得感情 o6 小时前
设计模式 13 · 桥接模式
java·设计模式·桥接模式
吠品6 小时前
Java中实现拓扑排序的两种方式:Kahn算法和DFS
java·数据库·notepad++