打好基础——数据库——条件函数

CASE函数

可以根据条件列表的值返回多个可能的结果表达式中的一个。

可用在任何允许使用表达式的地方,但不能单独作为一个语句执行。

分为简单CASE函数和搜索CASE函数。

CASE 测试表达式
WHEN 简单表达式1 THEN 结果表达式1
WHEN 简单表达式2 THEN 结果表达式2 …
WHEN 简单表达式n THEN 结果表达式n
[ ELSE 结果表达式n+1 ]
END
CASE
WHEN 布尔表达式1 THEN 结果表达式1
WHEN 布尔表达式2 THEN 结果表达式2 …
WHEN 布尔表达式n THEN 结果表达式n
[ ELSE 结果表达式n+1 ]
END

下面这段代码,从user_profile表中选取出了三列,分别是device_id、gender和age_cut。分别表示:设备id、性别和年龄范围。第三列根据age的条件给出了不同的结果,这就是条件函数所做的事。

select
device_id,
gender,
case
    when age>=25 then '25岁及以上'
    when age>=20 then '20-24岁'
    when age<20 then '20岁以下'
    else '其他'
end as age_cut
from user_profile

select需要想象数据库是一条一条进入sql语句的,如果这条数据的满足某个case条件,则使某条数据的值。