case函数是分支函数,根据条件列表的值返回值
可用在任何允许使用表达式的地方,但不能单独作为语句使用
如:计算25岁以下和25岁以上的用户数量(25岁以下包括null)
select case when age <25 or age is null then "25岁以下"
when age >=25 then "25岁及以上"
end age_cut,count(*) as number
from user_profile
group by age_cut
case函数分为简单case函数和搜索case函数
简单case函数:
CASE 测试表达式
WHEN 简单表达式1 THEN 结果表达式1
WHEN 简单表达式2 THEN 结果表达式2 …
WHEN 简单表达式n THEN 结果表达式n
[ ELSE 结果表达式n+1 ]
END
搜索case函数:
CASE
WHEN 布尔表达式1 THEN 结果表达式1
WHEN 布尔表达式2 THEN 结果表达式2 …
WHEN 布尔表达式n THEN 结果表达式n
[ ELSE 结果表达式n+1 ]
END