admin 管理员组

文章数量: 1184232


2024年5月15日发(作者:java throw exception)

mysql中when用法_MySQL中casewhen的基本用法总结

MySQL中的CASEWHEN语句是一种条件表达式,它可以根据不同的条

件选择不同的操作或返回不同的值。它的基本语法如下:

```

CASE WHEN condition1 THEN result1

WHEN condition2 THEN result2

...

ELSE result

END

```

其中,`condition1`、`condition2`等为条件,`result1`、

`result2`等为结果。可以根据需要设置多个条件和结果。

下面是MySQL中CASEWHEN语句的基本用法总结。

1.简单用法:CASEWHEN语句可以用于简单的条件判断,例如将一个

字段的值根据不同的条件映射成不同的结果。

```sql

SELECT CASE WHEN score >= 90 THEN '优秀'

WHEN score >= 80 THEN '良好'

WHEN score >= 60 THEN '及格'

ELSE'不及格'

END AS grade

FROM students;

```

2.多重条件:可以根据多个条件进行判断,按照条件的顺序,满足条

件则执行对应的结果,可以设置多个条件和结果。

```sql

SELECT CASE WHEN gender = 'M' AND age > 30 THEN '男性中年人'

WHEN gender = 'M' THEN '男性'

WHEN gender = 'F' AND age > 30 THEN '女性中年人'

WHEN gender = 'F' THEN '女性'

ELSE'未知'

END AS category

FROM students;

```

3.同时使用条件和计算:CASEWHEN语句还可以结合其他函数和运算

符进行计算,例如对字段值进行加减乘除等操作后再进行判断。

```sql

SELECT CASE WHEN score - 10 > 90 THEN '优秀'

WHEN score - 10 > 80 THEN '良好'

WHEN score - 10 > 60 THEN '及格'

ELSE'不及格'

END AS grade

FROM students;

```

EN语句作为表达式:CASEWHEN语句还可以作为其他表达式

的一部分使用,例如在SELECT语句中计算字段的值。

```sql

SELECT name, age,

CASE WHEN score >= 60 THEN '及格'

ELSE'不及格'

END AS result

FROM students;

```

EN语句的嵌套:CASEWHEN语句也可以进行嵌套,根据不同

的条件和结果进行多层次的判断。

```sql

SELECT CASE WHEN score >= 90 THEN '优秀'

WHEN score >= 80 THEN '良好'

WHEN score >= 60 THEN '及格'

ELSE CASE WHEN score >= 40 THEN '需要努力'

ELSE'不及格'

END

END AS grade

FROM students;

```

需要注意的是CASEWHEN语句的条件和结果可以是任意的,可以是常

量、字段、表达式、函数等等。


本文标签: 条件 语句 结果