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;
注意事项:
- CASE语句中的每个条件必须是互斥的,即只有一个条件成立;
- 如果没有匹配到任何条件,会返回ELSE后面的结果;
- 如果省略ELSE部分,没有匹配到任何条件时返回NULL;
- 可以在CASE语句中嵌套其他函数和子查询。