温馨提示

详情描述

"Case When" 语句在 SQL 查询中是一种非常有用的功能,它允许用户根据不同的条件执行不同的操作。本文将详细介绍 "Case When" 语句的语法、用法和示例,帮助读者更好地理解和应用这一功能。

一、语法结构

"Case When" 语句的基本语法结构如下:

```

CASE

WHEN condition1 THEN result1

WHEN condition2 THEN result2

...

ELSE else_result

END

```

其中,`condition1`、`condition2` 等为判断条件,`result1`、`result2` 等为满足条件时返回的结果。`ELSE else_result` 为所有条件都不满足时返回的结果。

二、用法介绍

1. 简单用法

"Case When" 语句的最简单用法是只有一个条件和一个结果。例如,假设有一个员工表 `employee`,其中包含字段 `gender` 和 `salary`,我们可以使用 "Case When" 语句来查询性别为男员工的薪水:

```sql

SELECT

gender,

salary,

CASE

WHEN gender = '男' THEN salary

END AS male_salary

FROM

employee;

```

2. 多条件用法

"Case When" 语句可以包含多个条件。例如,我们可以查询薪水高于 5000 的男员工和薪水高于 6000 的女员工的薪水:

```sql

SELECT

gender,

salary,

CASE

WHEN gender = '男' AND salary > 5000 THEN salary

WHEN gender = '女' AND salary > 6000 THEN salary

END AS high_salary

FROM

employee;

```

3. 嵌套用法

"Case When" 语句可以嵌套使用,即在一个条件中再次使用 "Case When" 语句。例如,我们可以查询每个员工的薪水等级,其中薪水高于 8000 的为高级工程师,薪水高于 6000 且低于等于 8000 的为工程师,否则为助理工程师:

```sql

SELECT

gender,

salary,

CASE

WHEN salary > 8000 THEN '高级工程师'

WHEN salary > 6000 THEN '工程师'

ELSE '助理工程师'

END AS salary_level

FROM

employee;

```

三、示例应用

以下是一个完整的示例,展示如何在实际应用中使用 "Case When" 语句:

假设有一个销售记录表 `sales`,包含字段 `product_id`、`quantity` 和 `price`。我们想要查询每个产品的销售总额,并根据销售总额对产品进行排序。

```sql

SELECT

product_id,

SUM(quantity * price) AS total_sales,

CASE

WHEN SUM(quantity * price) > 10000 THEN '热销'

WHEN SUM(quantity * price) > 5000 THEN '畅销'

ELSE '一般'

END AS sales_level

FROM

sales

GROUP BY

product_id

ORDER BY

total_sales DESC;

```

在这个示例中,我们首先使用 `SUM(quantity * price)` 计算每个产品的销售总额,然后使用 "Case When" 语句根据销售总额对产品进行分类。最后,我们按照销售总额降序排序,得到热销、畅销和一般三个等级的产品列表。

总结

"Case When" 语句在 SQL 查询中具有广泛的应用,它可以帮助我们根据不同条件执行不同操作,实现更灵活的数据查询和处理。通过本文的介绍,读者应该对 "Case When" 语句的语法、用法和示例有了更深入的了解,能够在实际工作中更好地应用这一功能。