當(dāng)我們在查詢數(shù)據(jù)的時候,我們可能希望對于一些數(shù)字的枚舉值展示出其實際的文案值
比如:性別1
我們想顯示男
,2
我們想顯示女
。
一、case 使用場景
1.1 簡單函數(shù)
CASE case_value
WHEN when_value THEN statement_list
[WHEN when_value THEN statement_list] ...
[ELSE statement_list]
END CASE
1.2 case搜索函數(shù)
CASE
WHEN search_condition THEN statement_list
[WHEN search_condition THEN statement_list] ...
[ELSE statement_list]
END CASE
二扯键、使用示例
2.1 簡單case函數(shù)
case `gender`
when 1 then '男'
when 2 then '女'
else '未知'
end
2.2 case搜索函數(shù)
case
when gender = 1 then '男'
when gender = 2 then '女'
else '未知'
end
準(zhǔn)備數(shù)據(jù)如下
create table if not exists test_user(
`id` bigint(20) not null AUTO_INCREMENT comment '主鍵自增ID',
`name` varchar(64) not null comment '姓名',
`gender` integer not null comment '性別,1: 男, 2: 女',
`country_code` integer not null comment '所屬國家CODE',
primary key (`id`)
) charset = 'utf8mb4' comment '測試表';
一張參照表
國家 | country_code |
---|---|
中國 | 100 |
美國 | 110 |
法國 | 120 |
雪國 | 其他 |
INSERT INTO `test_user` (`name`, `gender`, `country_code`)
VALUES
('清風(fēng)', 1, 100),
('玄武', 2, 100),
('Kobe', 1, 110),
('John Snow', 1, 200),
('Peut-être', 0, 120);
三、實戰(zhàn)示例
3.1 使用case
簡單函數(shù)
select `id`, `name`, `gender`,
(case `gender`
when 1 then '男'
when 2 then '女'
else '未知'
end) as '性別',
`country_code`
from test_user;
3.2 使用case
搜索函數(shù)查詢
select id, `name`, gender,
(case
when gender = 1 then '男'
when gender = 2 then '女'
else '未知'
end) as '性別',
country_code,
(case
when country_code = 100 then '中國'
when country_code = 110 then '英國'
when country_code = 120 then '法國'
else '雪國'
end) as '國籍'
from test_user;