2024年3月14日发(作者:)

casewhen用法sqlserver

在SQL Server中,CASE WHEN语句是一种条件表达式,它用于根据

满足给定条件的不同情况执行不同的操作。它通常用于在SELECT语句中

对查询结果进行其中一种逻辑处理。

CASEWHEN语法如下所示:

CASE

WHEN condition1 THEN result1

WHEN condition2 THEN result2

...

ELSE result

END

condition1,condition2等是条件表达式,它们返回True或False。

如果condition1为True,则执行result1、如果condition1为False并

且condition2为True,则执行result2、如果所有条件都为False,则

执行ELSE结果。

CASEWHEN语句可以在SELECT语句中使用,用于计算和返回计算字段,

也可以在WHERE和ORDERBY子句等其他语句中使用。

让我们通过一些示例来说明CASEWHEN的使用。

假设我们有一个名为Employees的表,其中包含以下字段:

EmployeeID、FirstName、LastName和Age。我们想根据员工年龄的不同

范围,为其分配不同的工作级别。在这种情况下,我们可以使用CASE

WHEN语句来实现。

例1:根据年龄范围为员工分配工作级别。

SELECT

EmployeeID,

FirstName,

LastName,

Age,

CASE

WHEN Age < 18 THEN 'Junior'

WHEN Age >= 18 AND Age <= 30 THEN 'Intermediate'

WHEN Age > 30 THEN 'Senior'

ELSE 'Unknown'

END AS JobLevel

FROM

Employees

在此示例中,我们使用CASE WHEN语句为每个员工计算工作级别。如

果员工的年龄小于18岁,则工作级别是'Junior';如果年龄在18至30

岁之间,则工作级别是'Intermediate';如果年龄大于30岁,则工作级

别是'Senior'。如果员工的年龄没有满足上述任何条件,则工作级别为

'Unknown'。结果将包括EmployeeID、FirstName、LastName、Age和

JobLevel字段。

例2:根据月销售额计算销售奖金百分比。

我们有一个名为Sales的表,其中包含SalesID、Month和Amount字

段。我们想根据月销售额的不同范围计算销售奖金的百分比。

SELECT

SalesID,

Month,

Amount,

CASE

ELSE Amount * 0.20

END AS BonusPercentage

FROM

Sales

除了上述示例之外,CASEWHEN语句还可以与其他函数和操作符一起

使用,用于更复杂的条件逻辑和计算。它可以在查询中提供灵活性,使我

们能够根据满足特定条件的情况下执行不同的操作和计算。

总结:

在SQL Server中,CASE WHEN语句是一种用于根据满足给定条件的

不同情况执行不同操作的条件表达式。它通常用于在SELECT语句中对查

询结果进行其中一种逻辑处理。CASE WHEN语句的语法如上所述,它可以

在SELECT、WHERE和ORDER BY等语句中使用。CASE WHEN语句的灵活性

使我们能够根据满足特定条件的情况下执行不同的操作和计算。