在SQL中,CASE WHEN THEN ELSE
是一种条件语句,用于根据一个或多个条件返回不同的结果。这种语句有两种格式:
- 简单Case函数 :
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result_default
END
```
2. **Case搜索函数** <b class="card40_249__sup_a7f6" data-sup="sup">1</b>:
```sql
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
END
```
这两种格式在功能上是等价的,但简单Case函数在处理多个条件时更为直观和易读。
### 示例
假设我们有一个员工表 `empinfo`,其中包含员工的性别信息,我们想要根据性别返回不同的称呼:
```sql
SELECT
empno,
empname,
age,
salary,
CASE
WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其他'
END AS gender
FROM
empinfo;
在这个查询中,CASE
语句会根据 sex
列的值返回相应的称呼。如果 sex
是 '1',则返回 '男';如果 sex
是 '2',则返回 '女';否则返回 '其他'。
注意事项
-
条件优先级 :在多个
WHEN
子句中,数据库会按照从左到右的顺序评估条件,一旦找到第一个匹配的条件,就会返回对应的结果,并停止评估后续的条件。 -
结果集 :
CASE
语句可以嵌套在SELECT
语句中,用于生成更复杂的结果集。
建议
在实际应用中,建议使用简单Case函数,因为它在处理多个条件时更为直观和易读。同时,确保每个 WHEN
子句中的条件是互斥的,即每个条件只有在前面的条件都不满足时才会被评估。