CASE WHEN [ val1 ] THEN [res1] ... ELSE [ default ] END
如果val1為true,返回res1镣屹,... 否則返回default默認(rèn)值
CASE [ expr ] WHEN [ val1 ] THEN [res1] ... ELSE [ default ] END
如果expr的值等于val1圃郊,返回res1,... 否則返回default默認(rèn)值
select if(false, 'ok', 'Error');
select if(true, 'ok', 'Error');
select ifnull('ok','Default');
select ifnull('','Default');
select ifnull(null,'Default');
# 查詢emp表的員工姓名和工作地址 (將北京/上海改成一線城市 , 其他改成二線城市)
select
name,
(case workaddress when '北京' then '一線城市' when '上海' then '一線城市' else '二線城市' end) as '工作地址'
from emp;
# 將score表中的成績(jī)轉(zhuǎn)化為優(yōu)秀女蜈、及格和不及格(85和60為分界線)
select
id,
name,
(case when math >= 85 then '優(yōu)秀' when math >= 60 then '及格' else '不及格' end)
as '數(shù)學(xué)',
(case when english >= 85 then '優(yōu)秀' when math >= 60 then '及格' else '不及格' end)
as '英語(yǔ)',
(case when score.chinese >= 85 then '優(yōu)秀' when math >= 60 then '及格' else '不及格' end)
as '語(yǔ)文'
from score;