admin 管理员组

文章数量: 1086019


2024年4月27日发(作者:怎么做一个网址)

mysql中case的用法

MySQL中的CASE语句用于根据指定条件返回不同的结果。它类似于

其他编程语言中的switch语句。CASE语句有两种格式,简单CASE函数

和CASE函数。

一、简单CASE函数

简单CASE函数格式如下:

CASE expression

WHEN value1 THEN result1

WHEN value2 THEN result2

...

ELSE else_result

END

该格式中,expression是一个要比较的表达式,value1、value2等

是用于比较的取值,result1、result2等是与取值匹配时返回的结果,

else_result是当没有匹配的取值时返回的结果。

例如,我们有一张名为student的学生表,包含id、name和score

字段,如下所示:

id , name , score

----,--------,-------

1 , Alice , 80

2 , Bob , 60

3 , Charlie, 90

我们可以使用以下查询语句根据学生分数的不同返回不同的等级:

SELECT name,

CASE

WHEN score >= 90 THEN 'A'

WHEN score >= 80 THEN 'B'

WHEN score >= 70 THEN 'C'

ELSE'D'

END AS grade

FROM student;

以上查询语句的结果为:

name , grade

--------,------

Alice , B

Bob , D

Charlie , A

二、CASE函数

CASE函数格式如下:

CASE

WHEN condition1 THEN result1

WHEN condition2 THEN result2

...

ELSE else_result

END

该格式中,condition1、condition2等是用于判断的条件,result1、

result2等是当条件满足时返回的结果,else_result是当没有满足的条

件时返回的结果。

例如,我们要根据学生的分数范围返回不同的等级,可以使用以下查

询语句:

SELECT name,

CASE

WHEN score BETWEEN 90 AND 100 THEN 'A'

WHEN score BETWEEN 80 AND 89 THEN 'B'

WHEN score BETWEEN 70 AND 79 THEN 'C'

ELSE'D'

END AS grade

FROM student;

以上查询语句的结果与之前的例子相同。

在CASE语句中,可以使用各种条件表达式,如比较操作符(=、<、>

等)、逻辑操作符(AND、OR等)、函数等。可以根据具体需求进行灵活

应用。

CASE语句还可以嵌套使用,即在一个CASE语句中可以嵌套另一个

CASE语句。

例如,我们要根据学生的分数返回不同的等级,但是

上的学生,可以使用以下查询语句:

SELECT name,

CASE

WHEN score >= 90 THEN

CASE

WHEN score = 100 THEN 'A+'

ELSE'A'

END

WHEN score >= 80 THEN 'B'

WHEN score >= 70 THEN 'C'

ELSE'D'

END AS grade

FROM student;

以上查询语句的结果为:

A+只给90分以

name , grade

--------,------

Alice , B

Bob , D

Charlie , A

在使用CASE语句时,还需要注意以下几点:

1.注意CASE语句的语法,特别是语句的结束标记END。

2.注意条件的顺序,条件类型是根据查询的逻辑确定的。

语句只能用于SELECT语句中,不能用于其他类型的语句。

4.可以在CASE语句中使用多个WHEN子句和ELSE子句。

以上就是MySQL中使用CASE语句的一些常见用法。CASE语句可以根

据不同的条件返回不同的结果,非常灵活,可以用于各种场景,例如根据

条件计算字段、分组聚合等。大家可以根据具体需求进行灵活应用。


本文标签: 语句 返回 条件 结果 用于