SQL中的CASE语句如何进行条件判断?

我在SQL查询中遇到了CASE语句,但是不太清楚如何正确地进行条件判断,麻烦有经验的大神能够给我点指导,谢谢!例如,我需要给定不同的条件和返回值,比如说当某个字段值等于A时,返回1;当字段值等于B时,返回2。我需要知道应该如何建立CASE结构,在SQL中如何正确进行条件判断,以及注意事项。

提问时间:2023-07-23 11:17:26 编辑时间:2023-07-23 11:17:28 提问者: Velvet_Lover
  • Sky_Hunter
    2

    SQL中的CASE语句可以用来进行多条件判断,语法为:

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

    其中,condition1、condition2、...、conditionN是要判断的条件,result1、result2、...、resultN是对应条件成立时的返回值,ELSE后面是条件都不成立时的返回值。

    例如,给定一个表格test,有字段name和age,需要根据条件返回不同的值:

    SELECT name, age, CASE WHEN age < 18 THEN '未成年' WHEN age >= 18 AND age < 30 THEN '青年' WHEN age >= 30 AND age < 50 THEN '中年' ELSE '老年' END AS '年龄段' FROM test;

    注意事项:

    1. CASE语句中的每个条件必须是互斥的,即只有一个条件成立;
    2. 如果没有匹配到任何条件,会返回ELSE后面的结果;
    3. 如果省略ELSE部分,没有匹配到任何条件时返回NULL;
    4. 可以在CASE语句中嵌套其他函数和子查询。
    回答时间:2023-07-23 11:17:31