SQL中,CASE WHEN 用法是进行条件判断和逻辑分支的工具,类似程序语言中的 if/then/else 语句。它有两种形式:
- 简单CASE表达式:对一个表达式的多个值进行比较,匹配对应的WHEN返回对应的结果。例如:
sql
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
ELSE result_default
END
- 搜索CASE表达式:对多个条件逐一判断,满足哪个条件则返回对应结果,例如:
sql
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE result_default
END
如果省略了 ELSE 子句且无匹配条件,返回 NULL。CASE WHEN 语句常用在 SELECT 查询中进行数据的条件转换,也可以用于聚合函数如 SUM 或 COUNT 进行分类统计,还能用于 WHERE 和 GROUP BY 子句实现复杂逻辑。 示例: 假设有一个问卷数据表 questionnaire,字段 Answer 代表答案编号:
sql
SELECT Name,
CASE Answer
WHEN 1 THEN '喜欢'
WHEN 2 THEN '不喜欢'
WHEN 3 THEN '还OK'
END AS AnswerText
FROM questionnaire;
或者用搜索CASE写法:
sql
SELECT Name,
CASE
WHEN Answer = 1 THEN '喜欢'
WHEN Answer = 2 THEN '不喜欢'
WHEN Answer = 3 THEN '还OK'
END AS AnswerText
FROM questionnaire;
案例中,CASE对Answer列的值进行判断并返回相应的中文文本。 总之,CASE WHEN是SQL中非常重要的条件控制语句,灵活应用可以实现数据转换、分类以及复杂的查询逻辑判断.