Case 表达式,如何从 then 子句中的列获取值

sqlserver

1个回答

写回答

凯凯要加油

2025-06-17 06:20

+ 关注

使用 Case 表达式是 SQL 查询中的一种常见技巧,它可以根据条件判断从 then 子句中的列获取值。在本文中,将详细介绍 Case 表达式的使用方法,并提供一些案例代码来帮助读者更好地理解。

Case 表达式的基本语法

在 SQL 中,Case 表达式有两种形式:简单 Case 表达式和搜索 Case 表达式。简单 Case 表达式适用于在多个选项中进行等值比较,而搜索 Case 表达式则适用于使用其他运算符进行比较。

下面是 Case 表达式的基本语法:

CASE expression

WHEN value1 THEN result1

WHEN value2 THEN result2

...

ELSE result

END

在上面的语法中,expression 是要进行比较的列或表达式,value1、value2 等是 expression 可能的取值,result1、result2 等是与每个取值相对应的结果。如果 expression 的值与任何 value 不匹配,则返回 ELSE 子句中的结果。

使用简单 Case 表达式获取值

简单 Case 表达式适用于在多个选项中进行等值比较。下面是一个使用简单 Case 表达式获取值的例子:

SELECT name, CASE grade

WHEN 'A' THEN '优秀'

WHEN 'B' THEN '良好'

WHEN 'C' THEN '及格'

ELSE '不及格'

END AS result

FROM students;

在上面的例子中,我们将学生的成绩 grade 转换为文字描述,并将结果命名为 result。如果 grade 为 A,则返回 '优秀',如果为 B,则返回 '良好',如果为 C,则返回 '及格',否则返回 '不及格'。

使用搜索 Case 表达式获取值

搜索 Case 表达式适用于使用其他运算符进行比较。下面是一个使用搜索 Case 表达式获取值的例子:

SELECT name, CASE

WHEN score >= 90 THEN '优秀'

WHEN score >= 80 THEN '良好'

WHEN score >= 60 THEN '及格'

ELSE '不及格'

END AS result

FROM students;

在上面的例子中,我们根据学生的分数 score 来判断其等级,并将结果命名为 result。如果分数大于等于 90,则返回 '优秀',如果大于等于 80,则返回 '良好',如果大于等于 60,则返回 '及格',否则返回 '不及格'。

Case 表达式是 SQL 查询中非常有用的一种技巧,可以根据条件判断从 then 子句中的列获取值。无论是简单 Case 表达式还是搜索 Case 表达式,都可以帮助我们根据不同的条件生成相应的结果。通过合理运用 Case 表达式,我们可以更加灵活地处理数据,并满足不同的查询需求。

希望本文对你理解 Case 表达式的使用方法有所帮助!

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号