mysql的case when怎么用

文 / @WordPress主题

MySQL的CASE语句是一种多分支结构,用于计算条件列表并返回多个可能结果表达式之一。在数据分析中,通过使用CASE语句,在数据库中查找数据并进行分析展示,准确的数据查询结果有利于后期简洁有效的分析。

在MySQL中,CASE语句有两种格式:简单CASE函数和搜索CASE函数,两种格式都支持可选的ELSE参数。简单CASE函数将某个表达式与一组简单表达式进行比较以确定结果。CASE搜索函数计算一组布尔表达式以确定结果。

简单函数CASE的语法如下:

CASE input_expression
WHEN when_expression THEN result_expression
[WHEN when_expression THEN result_expression ...]
[ELSE else_result_expression]
END

其中,input_expression使用枚举,所有可能的值都应该在WHEN后面列出来。如果没有匹配结果的WHEN子句,则ELSE子句提供一个默认结果。

搜索函数CASE的语法如下:

CASE
WHEN Boolean_expression THEN result_expression
[WHEN Boolean_expression THEN result_expression ...]
[ELSE else_result_expression]
END

其中,Boolean_expression是用来判断的表达式。如果满足条件,则返回THEN后面的结果,否则返回ELSE后面的结果。

下面以一个人员表为例,演示如何使用MySQL的CASE语句进行数据查询分析。

假设有一个人员表,包括姓名、年龄、性别字段。我们可以使用简单函数CASE对性别进行分析查询,代码如下:

SELECT
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他'
END AS '性别'
FROM people;

当查询结果为性别为1时,返回‘男’,为2时返回‘女’,不为1或2时则返回‘其他’。

我们也可以使用搜索函数CASE对年龄进行分析查询,代码如下:

SELECT
CASE
WHEN age = 18 AND age = 30 AND age = 50 THEN '老年'
ELSE '未知'
END AS '年龄分段'
FROM people;

当查询结果为年龄小于18岁时,返回‘未成年’,大于等于18岁小于30岁时返回‘青年’,大于等于30岁小于50岁时,返回‘中年’,大于等于50岁时返回‘老年’,不在以上分段时返回‘未知’。

总之,MySQL的CASE语句对于查询数据进行条件分析和展示非常有用,可以根据不同的查询需求和情况,选择适合自己的CASE语句格式。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。