case when then else end用法
1、基本用法
CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2]…[ELSE rn+1] END:如果expr值等于某个vn,则返回对应位置THEN后面的结果;如果与所有值都不相等,则返回ELSE后面的rn+1
case 后面不跟值
SELECT age, CASE
WHEN age >20 THEN
'old'
WHEN age <=20 THEN
'young'
ELSE
'未知'
END AS `status` FROM test;
===========================================
age status
20 young
12 young
14 young
15 young
56 old
15 young
12 young
13 young
14 young
case后面跟值
SELECT
p.`name` projectName,
p.end_time,
p.id projectId,
p.type,
case p.organization
when 'ADMIN' then 1
when 'SUPPER_USER_ORG' then 1
else 0
end AS adminFlag
FROM
biz_user_project up
LEFT JOIN biz_project p ON p.id = up.project_id
==================================================================================
projectName end_time projectId type adminFlag
普通项目 2021-04-17 00:00:00 1 0 1
普通项目 2021-04-17 00:00:00 1 0 1
普通项目 2021-04-17 00:00:00 1 0 1
普通项目 2021-04-17 00:00:00 1 0 1
普通项目 2021-04-17 00:00:00 1 0 1
普通项目 2021-04-17 00:00:00 1 0 1
普通项目 2021-04-17 00:00:00 1 0 1
普通项目 2021-04-17 00:00:00 1 0 0