MySQL中使用CASE出错_mysql 中 case when 的使用

1. 准备表以及数据

CREATE TABLE country_population

(

id INT NOT NULL AUTO_INCREMENT,

country VARCHAR(255) NOT NULL,

population BIGINT DEFAULT 0 ,

PRIMARY KEY(id)

)ENGINE=INNODB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

INSERT INTO country_population(`country`,`population`) VALUES('中国',600);

INSERT INTO country_population(`country`,`population`) VALUES('美国',100);

INSERT INTO country_population(`country`,`population`) VALUES('加拿大',100);

INSERT INTO country_population(`country`,`population`) VALUES('英国',200);

INSERT INTO country_population(`country`,`population`) VALUES('法国',300);

INSERT INTO country_population(`country`,`population`) VALUES('日本',250);

INSERT INTO country_population(`country`,`population`) VALUES('德国',200);

INSERT INTO country_population(`country`,`population`) VALUES('墨西哥',50);

INSERT INTO country_population(`country`,`population`) VALUES('印度',250);

2. 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

这两种方式有什么区别呢? Case 搜索函数的 When 可以有表达式。

3.问题

cd12beb6d9bd?open_source=weibo_search

image.png

(1).统计亚洲和北美洲的人口数量。

SELECT CASE WHEN country = '中国' THEN '亚洲'

WHEN country = '印度' THEN '亚洲'

WHEN country = '日本' THEN '亚洲'

WHEN country = '美国' THEN '北美洲'

WHEN country = '加拿大' THEN '北美洲'

WHEN country = '墨西哥' THEN '北美洲'

ELSE '其他' END state,

SUM(population)

FROM country_population

GROUP BY

CASE WHEN country = '中国' THEN '亚洲'

WHEN country = '印度' THEN '亚洲'

WHEN country = '日本' THEN '亚洲'

WHEN country = '美国' THEN '北美洲'

WHEN country = '加拿大' THEN '北美洲'

WHEN country = '墨西哥' THEN '北美洲'

ELSE '其他' END;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值