简介
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 邮箱删除。