MySQL CASE 语句

MySQL CASE 语句

MySQL CASE 语句

在MySQL数据库中,CASE语句是一种灵活的条件判断语句,可以根据条件决定返回不同的结果。这种语句通常用于在SELECT语句中根据不同的条件返回不同的值。

语法

CASE语句可以有两种形式:simple CASEsearched CASE

Simple CASE

Simple CASE表达式会比较一个表达式和多个简单表达式,然后根据它们之间的相等性返回一个结果表达式。其语法如下:

CASE case_expression
    WHEN when_expression THEN result_expression
    [WHEN when_expression THEN result_expression ...]
    [ELSE else_result_expression]
END

在这里,case_expression是要比较的值,when_expression是要比较的表达式,result_expression是匹配时返回的值,else_result_expression是当没有匹配项时返回的值。

Searched CASE

Searched CASE表达式会逐个评估一组条件,并在第一个条件评估为TRUE的时候返回一个结果表达式。其语法如下:

CASE
    WHEN condition THEN result_expression
    [WHEN condition THEN result_expression ...]
    [ELSE else_result_expression]
END

在这里,condition是一个要评估的条件,result_expression是匹配时返回的值,else_result_expression是当没有匹配项时返回的值。

示例

接下来,我们将通过实际的示例来演示CASE语句的使用。

创建测试表

首先,我们创建一个名为employees的测试表,用于存储员工的基本信息:

CREATE TABLE employees (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    department VARCHAR(50),
    salary INT
);

INSERT INTO employees VALUES
(1, 'Alice', 'HR', 5000),
(2, 'Bob', 'IT', 6000),
(3, 'Charlie', 'Finance', 7000),
(4, 'David', 'HR', 5500),
(5, 'Eve', 'IT', 6500),
(6, 'Frank', 'Finance', 7500);

使用 Simple CASE

现在,假设我们要根据员工的工资水平来分类他们的级别(高、中、低)。我们可以使用Simple CASE来实现:

SELECT name,
       salary,
       CASE
           WHEN salary > 7000 THEN '高级'
           WHEN salary > 6000 THEN '中级'
           ELSE '初级'
       END AS level
FROM employees;

上面的查询根据员工的工资水平将他们分为高级、中级和初级三个级别,可以看到不同员工的级别已经被正确分类。

使用 Searched CASE

除了上面的示例,我们还可以使用Searched CASE对员工进行更加复杂的分类,比如根据部门和工资水平来确定他们的职务:

SELECT name,
       department,
       salary,
       CASE
           WHEN department = 'IT' AND salary > 6000 THEN '高级工程师'
           WHEN department = 'IT' THEN '工程师'
           WHEN department = 'HR' THEN '人力资源'
           ELSE '财务部'
       END AS title
FROM employees;

上面的查询根据员工的部门和工资水平确定了他们的职务,可以看到不同员工的职务已经被正确分类。

总结

CASE语句是MySQL中灵活且强大的条件判断语句,可以根据不同的条件返回不同的结果。通过本文的介绍和示例,相信读者已经对CASE语句有了更深入的了解,可以灵活地运用在实际的数据库查询中。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程