case when oracle语法
-- 按成绩将学生分组 select name, score, case when score >= 90 then '优秀' when score >= 80 then '良好' when score >= 70 then '中等' when score >= 60 then '及格' else '不及格' end as level from student; -- 将性别转换为中文 select name, sex, age, case sex when 'M' then '男' when 'F' then '女' end as sex_zh from student; -- 统计不同区间范围的订单数量 select count(*) as order_num, case when amount
除了基本的case语句外,我们还可以使用一些高级的扩展语法,比如case表达式的嵌套、case语句的联合使用等。下面使用一个例子来说明:
-- 按照不同的年龄分组,并统计不同性别的学生数量 select age_group, sum(case sex when 'M' then 1 else 0 end) as male_num, sum(case sex when 'F' then 1 else 0 end) as female_num from ( select name, sex, age, case when age between 5 and 10 then '5~10岁' when age between 11 and 15 then '11~15岁' when age between 16 and 20 then '16~20岁' else '20岁以上' end as age_group from student ) group by age_group;