如何在SQL中使用CASE WHEN语句?

我想知道怎么在SQL中使用CASE WHEN语句,因为我需要根据不同的条件执行不同的操作。我有一个数据表,需要根据其中的某个字段来判断,如果它的值符合某些条件,就执行一些操作,否则执行另一些操作。我知道CASE WHEN语句可以帮助我完成这个任务,但是我不知道具体的语法和用法,希望有经验的朋友能帮我解答一下。

提问时间:2023-09-30 09:05:33 编辑时间:2023-09-30 09:05:35 提问者: Arctic_Warrior
  • 独行侠客
    9

    在SQL中,可以使用CASE WHEN语句来实现根据不同条件执行不同操作的需求。其基本语法如下:

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

    其中,CASE后面可以跟随多个WHEN子句,每个WHEN子句可以指定一个条件和对应的结果。如果所有的条件都不满足,则执行ELSE子句中的默认操作。

    在使用CASE WHEN语句中,需要注意以下几点:

    • condition可以是任何合法的逻辑表达式。当condition为真时,执行对应的result。
    • result可以是任何合法的SQL表达式,包括聚合函数、子查询、连接查询等。
    • 可以省略ELSE语句。如果所有的WHEN子句都不满足,会返回NULL。
    • 当条件比较复杂时,可以使用括号来明确表达式的优先级。

    下面是一个简单的示例:

    SELECT 
        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 grade_letter
    FROM student;
    

    这个查询语句会根据学生的成绩(grade字段)生成对应的字母成绩,例如90分以上为A,80分以上为B,以此类推。如果成绩不足60分,则返回F。

    回答时间:2023-09-30 09:05:38