mysql select case语句
时间: 2023-10-11 18:13:34 浏览: 90
MySQL的SELECT语句中可以使用CASE语句进行条件判断和分支选择,语法如下:
```
SELECT
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE default_result
END
AS alias_name
FROM table_name;
```
其中,expression是需要进行判断的表达式,value和result是当expression等于value时需要返回的结果,ELSE default_result是当expression不等于所有value时的默认返回结果。AS alias_name是为CASE语句的返回结果设置别名。
举个例子,如果我们有一个表格students,其中有学生的成绩信息score,我们可以使用CASE语句来将成绩分为优秀、良好、及格和不及格四个等级:
```
SELECT
CASE
WHEN score >= 90 THEN '优秀'
WHEN score >= 80 THEN '良好'
WHEN score >= 60 THEN '及格'
ELSE '不及格'
END
AS score_level
FROM students;
```
这样我们就可以得到每个学生的成绩等级了。
相关问题
mysql switch case 语句
MySQL中没有直接的switch case语句,但可以使用其他方式来实现类似的功能。一种常见的方法是使用IF函数或CASE表达式来模拟switch case语句的行为。
使用IF函数的示例:
```
SELECT
column_name,
IF(column_name = 'value1', 'result1',
IF(column_name = 'value2', 'result2',
IF(column_name = 'value3', 'result3', 'default_result'))) AS result
FROM table_name;
```
使用CASE表达式的示例:
```
SELECT
column_name,
CASE column_name
WHEN 'value1' THEN 'result1'
WHEN 'value2' THEN 'result2'
WHEN 'value3' THEN 'result3'
ELSE 'default_result'
END AS result
FROM table_name;
```
以上示例中,column_name是要进行判断的列名,'value1'、'value2'等是要匹配的值,'result1'、'result2'等是对应匹配值的结果,'default_result'是默认结果。
mysql的case语句
MySQL的CASE语句是一种条件语句,用于根据给定的条件执行不同的操作。它有两种形式:简单CASE语句和可搜索CASE语句。
1. 简单CASE语句
简单CASE语句的语法如下:
```
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE default_result
END
```
其中,expression是要比较的表达式,value1、value2等是要比较的值,result1、result2等是对应的结果,default_result是当没有匹配的值时返回的默认结果。
举个例子,假设有一个名为tbl_test_campus的表,其中有一个名为campus_tp的字段,它的值为0或1,分别表示大学和中小幼。我们可以使用简单CASE语句将其转化为具体含义,SQL语句如下:
```
SELECT campus_tp, CASE campus_tp
WHEN "0" THEN "大学"
WHEN "1" THEN "中小幼"
ELSE ""
END AS "校园类别"
FROM tbl_test_campus;
```
上述SQL语句将campus_tp字段的值与0和1进行比较,如果是0则返回“大学”,如果是1则返回“中小幼”,否则返回空字符串。执行结果如下:
```
+-----------+--------------+
| campus_tp | 校园类别 |
+-----------+--------------+
| 0 | 大学 |
| 0 | 大学 |
| 1 | 中小幼 |
| | |
+-----------+--------------+
4 rows in set (0.00 sec)
```
2. 可搜索CASE语句
可搜索CASE语句的语法如下:
```
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
```
其中,condition1、condition2等是要比较的条件,result1、result2等是对应的结果,default_result是当没有匹配的条件时返回的默认结果。
举个例子,假设有一个名为tbl_test_score的表,其中有一个名为score的字段,我们可以使用可搜索CASE语句将其转化为成绩等级,SQL语句如下:
```
SELECT score,
CASE
WHEN score >= 90 THEN "优秀"
WHEN score >= 80 THEN "良好"
WHEN score >= 70 THEN "中等"
WHEN score >= 60 THEN "及格"
ELSE "不及格"
END AS "成绩等级"
FROM tbl_test_score;
```
上述SQL语句将score字段的值与一系列条件进行比较,如果满足条件则返回对应的成绩等级,否则返回“不及格”。执行结果如下:
```
+-------+--------+
| score | 成绩等级 |
+-------+--------+
| 85 | 良好 |
| 92 | 优秀 |
| 68 | 中等 |
| 55 | 不及格 |
+-------+--------+
4 rows in set (0.00 sec)
```
阅读全文