SQL进阶 case
时间: 2024-09-25 16:05:24 浏览: 25
SQL进阶中的CASE语句是一种条件表达式,它允许你在查询结果中根据特定的条件返回不同的值。CASE语句通常用于以下几个场景:
1. **基本结构**:
```
CASE
WHEN condition THEN result_value1
ELSE [result_value2]
END
```
当`condition`为真时,返回`result_value1`;否则,如果存在ELSE部分,则返回`result_value2`。
2. **多个分支**:
```
CASE
WHEN condition1 THEN value1
WHEN condition2 THEN value2
ELSE default_value
END
```
可以处理多个条件,每个条件对应一个结果值。
3. **SAS样式**:
```
CASE
WHEN condition THEN result
ELSE NULL
END
```
这种形式适合避免NULL值影响计算结果,未满足条件时返回NULL。
4. **WHEN…THEN…ELSE ALL** 或 **WHEN…THEN…END FOR EACH ROW**:
这些语法允许对每一行数据都进行检查并返回相应的结果,特别适用于聚合函数如COUNT、SUM等。
5. **嵌套CASE**:
你可以在一个CASE语句内部再嵌套一个CASE语句,以实现更复杂的逻辑判断。
案例应用:
```
SELECT id,
CASE
WHEN age > 18 THEN 'Adult'
ELSE 'Minor'
END AS age_group,
CASE
WHEN salary > 5000 THEN 'High'
WHEN salary BETWEEN 3000 AND 5000 THEN 'Medium'
ELSE 'Low'
END AS income_level
FROM users;
```
这个例子中,会根据用户年龄和薪水划分不同的组别。
阅读全文