1. CASE WHEN 表达式有两种形式
--简单Case函数
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
--Case搜索函数
CASE
WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其他' END
2. CASE WHEN 在语句中不同位置的用法
2.1 SELECT CASE WHEN 用法
数据库结构与数据如下:
SELECT grade, COUNT (CASE WHEN sex = 1 THEN 1 /*sex 1为男生,2位女生*/
-- ELSE NULL
END) 男生数,
COUNT (CASE WHEN sex = 2 THEN 1
-- ELSE NULL
END) 女生数
FROM students GROUP BY grade;
select grade from students group by grade;
查询结果如下:
select grade from students group by grade;
2.4 GROUP BY CASE WHEN 用法
数据库结构与数据如下:
SELECT grade, COUNT (CASE WHEN sex = 1 THEN 1 /*sex 1为男生,2位女生*/
-- ELSE NULL
END) 男生数,
COUNT (CASE WHEN sex = 2 THEN 1
-- ELSE NULL
END) 女生数
FROM students GROUP BY grade;
select grade from students group by grade;
3.关于IF-THEN-ELSE的其他实现
3.1 DECODE() 函数
select decode(sex, '1', '男生', '2', '女生', 'Unknown') sex from students;