测试表student:
sno sname ssex sage sdept
95001 张三 男 17 CS
95002 李四 女 19 IS
95003 王五 男 22 MA
95004 李四 男 20 IS
简单case
SELECT
(
CASE ssex
WHEN '男'
THEN 1
WHEN '女'
THEN 2
ELSE '其他'
END)'性别'
FROM
student
搜索case
SELECT
(
CASE
WHEN ssex = '男'
THEN 1
WHEN ssex ='女'
THEN 2
ELSE '其他'
END)'性别'
FROM
student
1.和group by配合使用
计算男女的年龄和
SELECT
(
CASE
WHEN ssex = '男'
THEN '男的'
WHEN ssex ='女'
THEN '女的'
ELSE '其他'
END)'性别',
SUM(sage)
FROM
student
GROUP BY
(
CASE
WHEN ssex = '男'
THEN '男的'
WHEN ssex ='女'
THEN '女的'
ELSE '其他'
END)
女的
19
男的
59
统计各个年龄段数量
SELECT
(
CASE
WHEN sage <18
THEN '小朋宇'
WHEN sage <20
THEN '骚年'
ELSE '青年'
END)'年龄段',
COUNT(*) '数量'
FROM
student
GROUP BY
(
CASE
WHEN sage <18
THEN '小朋宇'
WHEN sage <20
THEN '骚年'
ELSE '青年'
END)
年龄段 数量
小朋宇
1
青年
2
骚年
1
2.和汇总函数配合使用
统计男女数量
select count(case when ssex = '男' then 1 else 0 end) '男生数',
count(case when ssex = '女' then 1 else 0 end) '女生数'
from student
男生数 女生数
3
1
select sum(case when ssex='男' then 1 else 0 end) '男生数',
sum(case when ssex='女' then 1 else 0 end) '女生数'
统计男女年龄和
select sum(case when ssex='男' then sage else 0 end) '男子年龄和',
sum(case when ssex='女' then sage else 0 end) '女子年龄和'
from student
男子年龄和 女子年龄和
59
19
交换性别
UPDATE
student
SET
ssex = (
CASE
WHEN ssex='男'
THEN '女'
WHEN ssex='女'
THEN '男'
ELSE ssex
END)