sqlserver中update中的case函数用法
时间: 2024-03-02 13:54:04 浏览: 178
在 SQL Server 中,可以在 UPDATE 语句中使用 CASE 函数来根据条件表达式的结果更新数据。其语法如下:
```
UPDATE TableName
SET ColumnName =
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result
END
WHERE condition;
```
其中,`TableName` 为要更新的表名,`ColumnName` 为要更新的列名,`condition` 为要更新的行的条件,`condition1`、`condition2` 等为条件表达式,`result1`、`result2` 等为与之对应的结果,`ELSE` 关键字可选,用于指定所有条件均不满足时的默认返回值。可以有多个 `WHEN` 子句,但必须至少有一个。
例如,以下语句将根据商品类型更新对应的折扣率:
```
UPDATE SalesTable
SET DiscountRate =
CASE
WHEN ProductType = 'A' THEN 0.1
WHEN ProductType = 'B' THEN 0.2
ELSE 0.05
END
WHERE SalesDate > '2021-01-01';
```
该语句将更新 `SalesDate` 大于 '2021-01-01' 的销售记录的 `DiscountRate` 列,如果商品类型为 'A',则折扣率为 0.1,如果商品类型为 'B',则折扣率为 0.2,否则折扣率为 0.05。
阅读全文