@IT·互联网技术研发汇集

MySQL中的条件判断函数 CASE WHEN、IF、IFNUL

2024-01-26  本文已影响0人  星辰大海的精灵

在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

上一篇下一篇

猜你喜欢

热点阅读