sql的case when
时间: 2023-10-11 10:11:24 浏览: 84
sql 中 case when 语法使用方法
case when是SQL中的一种条件表达式,它可以在查询语句中根据不同的条件返回不同的结果。通常用于在查询结果中进行条件判断和数据转换。case when语句的一般语法如下:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result
END
其中,condition1、condition2等是待判断的条件,result1、result2等是对应条件的结果。如果所有条件都不满足,将返回ELSE后指定的结果。case when语句可以嵌套使用,提供多层条件判断和结果返回。
下面是几个使用case when的示例:
- 示例1:根据学生选课情况判断是否为主修课程
SELECT std_id,
CASE WHEN COUNT(*) = 1 THEN MAX(class_id)
ELSE MAX(CASE WHEN main_class_flg = 'Y' THEN class_id ELSE NULL END )
END AS main_class
FROM Studentclass
GROUP BY std_id;
这个示例中,当一个学生只选择了一门课程时,返回该门课程的class_id;当一个学生选择了多门课程时,返回该学生的主修课程的class_id。
- 示例2:交换表中的主键a和b的值
UPDATE SomeTable
SET p_key = CASE WHEN p_key = 'a' THEN 'b'
WHEN p_key = 'b' THEN 'a'
ELSE p_key
END
WHERE p_key IN ('a', 'b');
在这个示例中,将表中主键为'a'的值替换为'b',主键为'b'的值替换为'a',其他值保持不变。
阅读全文