admin 管理员组

文章数量: 1184232


2024年5月15日发(作者:volatile用法和案例)

mysql case when使用方法

一、简介

在MySQL中,Case When语句是一种条件语句,可以根据条件执

行不同的操作。它可以与SELECT、UPDATE、DELETE等语句结合使用,

根据不同的条件返回不同的结果。Case When语句的基本语法如下:

```scss

CASE

WHEN condition1 THEN result1

WHEN condition2 THEN result2

...

ELSE result

END

```

其中,condition是判断条件,result是满足条件时要执行的操

作或返回的结果。

二、使用方法

1. 基本用法

Case When语句的基本用法很简单,只需要在SELECT、UPDATE或

DELETE语句中添加相应的条件即可。例如,以下是一个简单的SELECT

语句,使用Case When语句根据性别返回不同的姓名:

```sql

SELECT name,

CASE

WHEN gender = '男' THEN '男姓名'

第 1 页 共 3 页

WHEN gender = '女' THEN '女姓名'

ELSE '未知'

END AS gender_name

FROM persons;

```

2. 嵌套使用

Case When语句可以嵌套使用,即在满足一个条件的基础上再执

行另一个条件。例如,以下是一个查询工资大于等于5000的员工姓名

和工资的语句:

```sql

SELECT name, salary

FROM employees

WHERE salary >= 5000

AND (salary < 10000 OR (gender = '女' AND age < 30))

AND (CASE

WHEN department = 'IT' THEN 'IT部门'

ELSE '其他部门'

END) = 'IT部门';

```

在这个例子中,使用了嵌套的Case When语句,先判断部门是否

为IT部门,再根据性别和年龄的条件进行筛选。最后使用外部的Case

When语句根据性别和部门进行最终的筛选。

3. Case When与Else子句配合使用

第 2 页 共 3 页

除了使用Else子句来指定如果不满足任何条件时应执行的操作

外,还可以直接使用其他的运算符或表达式作为结果。例如,以下是

一个查询年龄大于等于35岁且性别为女员工的语句:

```sql

SELECT name, salary, age, gender, department

FROM employees

WHERE age >= 35 AND gender = '女'

AND (CASE

WHEN salary < 5000 THEN '低薪' -- 当工资小于

5000时,返回“低薪”结果

ELSE (CASE

WHEN department = 'IT' THEN 'IT部门'

-- 当部门为IT部门时,返回“IT部门”结果

ELSE '其他部门' -- 当部门不为IT部门

时,返回“其他部门”结果

END) -- 使用Else子句指定默认结果为“其他

部门”结果

END) = 'IT部门'; -- 使用外部的Case When语句进行

最终筛选

```

以上就是MySQL中Case When的使用方法。通过灵活运用Case

When语句,可以根据不同的条件执行不同的操作,从而实现更复杂的

查询和筛选。

第 3 页 共 3 页


本文标签: 语句 使用 条件 部门 结果