MySQL用case语句
时间: 2024-09-25 16:06:36 浏览: 41
MySQL的CASE语句是一种条件选择语句,用于根据特定的条件返回不同的值。它的工作原理类似于其他编程语言中的三元表达式,但在SQL中更加强大,可以处理复杂的判断逻辑。CASE结构通常包含以下几个部分:
1. **WHEN**部分:指定每个可能的条件,如果某个条件满足,就会执行对应的`THEN`操作。
2. **WHEN...ELSE**部分:这是可选的,如果所有WHEN都不匹配,那么会执行这个ELSE后的操作。
3. **END CASE**:标志着CASE语句的结束。
一个基本的CASE结构可能像这样:
```sql
SELECT column_name,
CASE
WHEN condition THEN result_if_true
ELSE result_if_false
END AS new_column
FROM table_name;
```
例如,如果你想根据不同年龄段将年龄分为儿童、青少年、成人和老年,你可以这样做:
```sql
SELECT age,
CASE
WHEN age BETWEEN 0 AND 12 THEN '儿童'
WHEN age BETWEEN 13 AND 18 THEN '青少年'
WHEN age BETWEEN 19 AND 64 THEN '成人'
ELSE '老年'
END AS age_group
FROM users;
```
相关问题
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)
```
阅读全文