MySQL中的条件判断函数 CASE WHEN、IF、IFNUL
在MySQL中,条件判断函数是用来在查询过程中根据不同的条件返回不同的值。以下是CASE WHEN、IF和IFNULL这三个条件判断函数的具体用法。
### 1. CASE WHEN 语句
CASE WHEN语句在SQL中用于条件判断,类似于编程语言中的if-else语句。它可以用来简化复杂的查询,并使查询更加易读和易于维护。
#### 简单函数用法:
```sql
CASE 字段
WHEN 预期值 THEN 结果1
ELSE 结果2
END
```
如果字段的值等于预期值,则返回结果1,否则返回结果2。
**示例**:将表中的sex字段根据性别转换成对应的汉字。
```sql
SELECT name, (CASE sex WHEN 1 THEN '男' ELSE '女' END) sex FROM score;
```
#### 条件表达式用法:
```sql
CASE
WHEN 条件表达式 THEN 结果1
WHEN 条件表达式 THEN 结果2
...
ELSE 默认结果
END
```
当第一个条件表达式为真时,返回结果1;如果为假,继续检查下一个条件表达式,以此类推;如果所有条件都不满足,则返回默认结果。
**示例**:根据score字段判断学生的成绩级别。
```sql
SELECT name, score, (
CASE
WHEN score >= 90 THEN '优秀'
WHEN score >= 80 THEN '良好'
WHEN score >= 60 THEN '及格'
ELSE '不及格'
END
) level FROM score;
```
### 2. IF 函数
IF函数在MySQL中用于基于条件表达式返回不同的值。它的基本语法是:
```sql
IF(expr, v1, v2)
```
如果表达式expr为真(非零),则返回v1,否则返回v2。
**示例**:根据部门名称返回不同的礼品。
```sql
SELECT
department,
IF(department = 'IT', '键盘', '鼠标') AS gift
FROM employees;
```
### 3. IFNULL 函数
IFNULL函数用于检测一个表达式是否为NULL,如果不是NULL,则返回该值;如果是NULL,则返回另一个指定的值。
```sql
IFNULL(column1, column2)
```
**示例**:如果sex字段为NULL,则将其视为'未指定'。
```sql
SELECT
name,
IFNULL(sex, '未指定') AS sex
FROM score;
```
这三个函数可以结合使用,以处理复杂的逻辑判断。在实际应用中,应根据具体情况选择最合适的函数。需要注意的是,CASE WHEN语句不仅可以用于SELECT查询,还可以用于UPDATE和DELETE语句中,以实现更复杂的条件更新或删除操作。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/wjianwei666/article/details/135883448