WHEN '中国' THEN '亚洲'
WHEN '印度' THEN '亚洲'
WHEN '日本' THEN '亚洲'
WHEN '美国' THEN '北美洲'
WHEN '加拿大' THEN '北美洲'
WHEN '墨西哥' THEN '北美洲'
ELSE '其他' END;
同样的,我们也可以用这个方法来判断工资的等级,并统计每一等级的人数。SQL代码如下;
SELECT
CASE WHEN salary <= 500 THEN '1'
WHEN salary > 500 AND salary <= 600 THEN '2'
WHEN salary > 600 AND salary <= 800 THEN '3'
WHEN salary > 800 AND salary <= 1000 THEN '4'
ELSE NULL END salary_class,
COUNT(*)
FROM Table_A
GROUP BY
CASE WHEN salary <= 500 THEN '1'
WHEN salary > 500 AND salary <= 600 THEN '2'
WHEN salary > 600 AND salary <= 800 THEN '3'
WHEN salary > 800 AND salary <= 1000 THEN '4'
ELSE NULL END;
二,用一个SQL语句完成不同条件的分组。
有如下数据
国家(country)性别(sex)人口(population)
中国1 340
中国2 260
美国1 45
美国2 55
加拿大1 51
加拿大2 49
英国1 40
英国2 60
按照国家和性别进行分组,得出结果如下
国家男女
中国340 260
美国45 55
加拿大51 49
英国40 60
普通情况下,用UNION也可以实现用一条语句进行查询。但是那样增加消耗(两个Select部分),而且SQL语句会比较长。
下面是一个是用Case函数来完成这个功能的例子
SELECT country,
SUM( CASE WHEN sex = '1' THEN
population ELSE 0 END), --男性人口
猜您也喜欢...
- · case when用法详解 Oracle case when使用案例 Oracle CASE WHEN 用法介绍 1. CASE WHEN 表达式有两种形式 --简....
- · 五款常用的MYSQL数据库管理工具 最近做做站用到dedecms,要在本地配置mysql时,才想起因为工作使....
- · 经典的Mysql分页查询实现方法 经典的Mysql分页查询实现代码: mysql select pname from produc....
- · timestamp是什么?Mysql timestamp时间戳详解 timestamp是什么?Mysql timestamp时间戳详解 MySQL目前不支持列....
- · mysql错误Error(1133): Can’t find any matching row in the us 刚尝试修改mysql数据库用户名时,提示 Error (1133): Cant find ....