Case When 的用法详解:一文掌握 SQL 强大筛选利器

高考志愿 2025-01-04 10:25:25

简介

 Case When 的用法详解:一文掌握 SQL 强大筛选利器 Case When 的用法详解:一文掌握 SQL 强大筛选利器


`CASE WHEN` 句法是一种强大的 SQL 语句,用于有条件地评估表达式并返回不同的值。它允许您根据满足或不满足特定条件来动态确定列值。

语法

```sql CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE default_result END ```

参数

condition1, condition2, ...: 要评估的条件。 result1, result2, ...: 如果相应条件为 `true`,则返回的值。 default_result: 如果所有条件都为 `false`,则返回的值。

用法

`CASE WHEN` 常见于以下场景:

根据条件将值分类到不同的组。 根据条件替换值。 执行复杂的数据转换。

示例

以下示例根据 `age` 列将人员分类为不同的年龄组:

```sql SELECT CASE WHEN age < 18 THEN 'Child' WHEN age BETWEEN 18 AND 64 THEN 'Adult' ELSE 'Senior' END AS age_group FROM person; ```

以下示例根据 `gender` 列替换 `name` 列的值:

```sql SELECT CASE WHEN gender = 'M' THEN 'Mr. ' || name WHEN gender = 'F' THEN 'Ms. ' || name ELSE name END AS full_name FROM person; ```

以下示例将 `salary` 列转换为美元格式:

```sql SELECT CASE WHEN currency = 'USD' THEN '$' || salary WHEN currency = 'GBP' THEN '£' || salary ELSE salary END AS salary_formatted FROM employee; ```

注意事项

使用 `CASE WHEN` 时,确保覆盖所有可能的条件,否则可能导致意外结果。 使用 `ELSE` 子句提供一个默认值,以处理所有未满足条件的情况。 `CASE WHEN` 可以嵌套,以实现更复杂的筛选操作。 对于大量条件,可以使用 `UNION` 操作符来简化代码。

结论

版权声明:本文内容由互联。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发 836084111@qq.com 邮箱删除。