mysql中的case when then else end用法
时间: 2023-10-20 09:36:51 浏览: 52
MySQL中的CASE语句用于在查询中进行条件判断和结果返回。它的基本语法如下:
```
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE resultN
END
```
其中,`condition1`, `condition2`等是条件表达式,`result1`, `result2`等是满足条件时返回的结果。如果没有任何条件满足,将返回`resultN`。
下面是一个示例,展示了CASE语句的用法:
```sql
SELECT
id,
name,
CASE
WHEN score >= 90 THEN '优秀'
WHEN score >= 80 THEN '良好'
WHEN score >= 70 THEN '中等'
ELSE '不及格'
END AS grade
FROM
students;
```
在这个示例中,根据学生的分数,将其对应的成绩等级作为结果返回。如果分数大于等于90,则返回'优秀';如果分数大于等于80,则返回'良好';如果分数大于等于70,则返回'中等';否则返回'不及格'。
你可以根据实际需求编写不同的条件和结果来使用CASE语句。
相关问题
mysql case end as_MySql 中 case when then else end 的用法
在 MySQL 中,CASE 表达式可以用于在 SELECT 语句中进行条件判断,类似于 if-else 语句。它的一般语法如下:
```
SELECT
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
FROM table_name;
```
其中,condition1、condition2 等是条件表达式,result1、result2 等是对应条件为真时的结果,default_result 是所有条件均不满足时的默认结果。
CASE 表达式还可以使用简写方式:
```
SELECT
CASE column_name
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE default_result
END
FROM table_name;
```
在这种情况下,column_name 是要判断的列名,value1、value2 等是该列可能出现的值,result1、result2 等是对应值的结果,default_result 是该列值不在上述列表中时的默认结果。
另外,CASE 表达式还可以嵌套使用,实现更复杂的条件判断。例如:
```
SELECT
CASE
WHEN condition1 THEN
CASE
WHEN sub_condition1 THEN sub_result1
WHEN sub_condition2 THEN sub_result2
...
ELSE sub_default_result
END
WHEN condition2 THEN
CASE
WHEN sub_condition3 THEN sub_result3
WHEN sub_condition4 THEN sub_result4
...
ELSE sub_default_result
END
...
ELSE default_result
END
FROM table_name;
```
在这个例子中,CASE 表达式嵌套了两层,实现了更复杂的条件判断。
mysql中case when then else end和if()的区别
在MySQL中,CASE WHEN THEN ELSE END和IF()函数都可以用于条件判断和返回结果。它们的区别如下:
1. CASE WHEN THEN ELSE END语句:
- CASE WHEN语句用于根据条件计算结果。
- 它可以在SELECT语句中使用,也可以在其他SQL语句中使用。
- CASE WHEN语句可以有多个WHEN条件,每个条件后面跟着一个THEN子句,用于指定满足条件时的结果。
- ELSE子句是可选的,用于指定当所有条件都不满足时的默认结果。
- CASE WHEN语句的语法如下:
```sql
CASE WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
```
2. IF()函数:
- IF()函数用于根据条件返回不同的结果。
- 它可以在SELECT语句中使用,也可以在其他SQL语句中使用。
- IF()函数只能有两个条件,第一个参数是条件表达式,第二个参数是满足条件时的结果,第三个参数是不满足条件时的结果。
- IF()函数的语法如下:
```sql
IF(condition, true_result, false_result)
```
所以,CASE WHEN THEN ELSE END语句可以处理多个条件,并且可以有一个默认结果,而IF()函数只能处理两个条件。根据具体的需求,你可以选择使用适合的方法。