sqlserver中case函数用法
时间: 2023-09-02 14:09:53 浏览: 93
在 SQL Server 中,CASE 函数可以根据条件表达式的结果返回不同的值。其语法如下:
```
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result
END
```
其中,`condition1`、`condition2` 等为条件表达式,`result1`、`result2` 等为与之对应的结果,`ELSE` 关键字可选,用于指定所有条件均不满足时的默认返回值。可以有多个 `WHEN` 子句,但必须至少有一个。
例如,以下语句将根据销售额返回对应的级别:
```
SELECT
Sales,
CASE
WHEN Sales >= 1000000 THEN 'Platinum'
WHEN Sales >= 500000 THEN 'Gold'
WHEN Sales >= 100000 THEN 'Silver'
ELSE 'Bronze'
END AS SalesLevel
FROM SalesTable;
```
相关问题
sqlserver中update中的case函数用法
在 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。
sqlserver中update中的case函数用法修改多个值
在SQL Server中,可以使用CASE函数在UPDATE语句中修改多个值。下面是一个示例:
```
UPDATE MyTable
SET Column1 =
CASE
WHEN Column2 = 'Value1' THEN 'NewValue1'
WHEN Column2 = 'Value2' THEN 'NewValue2'
ELSE Column1
END,
Column3 =
CASE
WHEN Column4 = 'Value3' THEN 'NewValue3'
WHEN Column4 = 'Value4' THEN 'NewValue4'
ELSE Column3
END
WHERE SomeCondition;
```
在上面的示例中,我们使用了两个CASE函数来修改两个不同的列(Column1和Column3)的值。根据不同的条件,我们可以为每个列指定不同的新值。请注意,我们使用WHERE子句来指定需要更新的行。
阅读全文