where 字句 使用case
时间: 2024-12-12 21:28:45 浏览: 9
WHERE子句与CASE表达式一起使用时,可以在SQL UPDATE语句中根据特定条件来执行不同的更新操作。然而,它们通常用于不同场景:
1. **CASE WHEN WHERE**[^1]:
- WHERE子句用于筛选要更新的数据集,确保只有满足特定条件的记录会被修改。
```sql
UPDATE table_name
SET column1 = CASE WHEN condition THEN new_value_1 ELSE old_value END
WHERE some_condition;
```
这里,`condition`是你定义的判断条件,如果满足条件,则将`new_value_1`设置给`column1`,否则保持原值。
2. **CASE IN UPDATE**:
- 如果你想基于某个字段的值范围进行动态更新,可以使用CASE表达式结合UPDATE,但一般不会直接放在WHERE后面,而是作为SET的一部分。
```sql
UPDATE table_name
SET column1 =
CASE
WHEN column2 BETWEEN lower_bound AND upper_bound THEN updated_value
ELSE current_value
END
;
```
请注意,使用CASE WHEN和WHERE的组合时,WHERE始终用于限制UPDATE操作的影响范围,而CASE则用来决定每个符合条件的记录的具体更新行为。
阅读全文