SQL CASE语句

2024年06月28日 SQL CASE语句 极客笔记

SQL CASE语句

在SQL中,CASE语句是用来执行条件判断的一种方法。它可以根据不同的条件返回不同的值。CASE语句类似于其他编程语言中的switch语句或者if-else语句。在本文中,我们将详细讨论CASE语句的用法和示例。

CASE语句的语法

CASE语句有两种形式:simple CASEsearched CASE

Simple CASE语句的语法

简单CASE语句的语法如下:

CASE expression
    WHEN value1 THEN result1
    WHEN value2 THEN result2
    ...
    ELSE result
END

在简单CASE语句中,expression是需要进行比较的表达式,value1, value2, …是可能的取值,result1, result2, …是与各个取值对应的结果。如果expression等于某个value,则返回对应的result,如果没有匹配的值,则返回ELSE后面的result

Searched CASE语句的语法

搜索CASE语句的语法如下:

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE result
END

在搜索CASE语句中,每个WHEN后面都跟着一个条件,如果该条件为真,则返回对应的结果。如果没有匹配的条件,则返回ELSE后面的result

CASE语句的示例

下面我们通过一些示例来演示CASE语句的用法。

示例1:根据成绩判断等级

假设我们有一张students表,包含学生的姓名和成绩,现在我们要根据成绩判断学生的等级。我们可以使用CASE语句来实现:

SELECT 
    name,
    grade,
    CASE
        WHEN grade >= 90 THEN 'A'
        WHEN grade >= 80 THEN 'B'
        WHEN grade >= 70 THEN 'C'
        WHEN grade >= 60 THEN 'D'
        ELSE 'F'
    END AS level
FROM students;

在上面的示例中,根据学生的成绩判断其等级并返回对应的等级。

示例2:根据性别显示称谓

假设我们有一张customers表,包含顾客的姓名和性别,现在我们要根据性别显示称谓,比如男性显示“先生”,女性显示“女士”。我们可以使用CASE语句来实现:

SELECT 
    name,
    gender,
    CASE
        WHEN gender = 'M' THEN '先生'
        WHEN gender = 'F' THEN '女士'
        ELSE '未知'
    END AS title
FROM customers;

在上面的示例中,根据顾客的性别显示对应的称谓。

总结

CASE语句是SQL中非常有用的一种条件判断方法,可以根据不同的条件返回不同的结果。在实际应用中,我们可以根据具体的需求灵活运用CASE语句,使查询结果更加符合我们的期望。

本文链接:http://so.lmcjl.com/news/7429/

展开阅读全文