sql 中 case when then
时间: 2024-09-09 10:11:04 浏览: 62
SQL中的`CASE WHEN THEN`表达式是一种条件表达式,用于在查询中实现逻辑分支。它类似于编程语言中的if-then-else条件语句。`CASE WHEN THEN`可以出现在SQL语句的`SELECT`、`WHERE`、`ORDER BY`等子句中。
在`CASE`表达式中,`WHEN`后面跟随条件表达式,`THEN`后面跟随当条件满足时返回的值。如果前面的`WHEN`条件都不满足,则可以通过`ELSE`子句指定一个默认值。如果不需要指定默认值,`ELSE`子句可以省略。整个`CASE`表达式的结果是第一个条件为真时的`THEN`后面的值。
`CASE`表达式有两种形式:
1. 简单形式(Searched Case):不依赖于列值,而是一个独立的条件表达式。
```sql
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
[ ELSE default_result ]
END
```
2. 搜索形式(Searched Case):依赖于列值,类似于`IF-THEN-ELSE`结构。
```sql
CASE column_name
WHEN value1 THEN result1
WHEN value2 THEN result2
...
[ ELSE default_result ]
END
```
例如,假设有一个员工表`employees`,包含员工ID、姓名和部门,我们可以使用`CASE`表达式在查询中根据部门返回不同的描述:
```sql
SELECT
employee_id,
name,
CASE department
WHEN 'HR' THEN '人力资源部'
WHEN 'IT' THEN '技术部'
WHEN 'Sales' THEN '销售部'
ELSE '其他部门'
END AS department_description
FROM employees;
```
在上述例子中,根据员工的部门返回相应的部门描述。
阅读全文