SQL 中 CASE
表达式可以用于进行条件判断,根据不同的条件返回不同的结果,语法结构如下:
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
[ELSE resultN]
END
其中 expression
代表要进行判断的表达式,value1
、value2
分别代表不同的条件,result1
、result2
是条件成立时的返回值,ELSE
可选,代表当都不满足前面的条件时的默认返回值。
下面通过实际的例子来说明 CASE
表达式的使用。
示例一:根据订单数量计算优惠金额
假设我们需要根据用户的订单数量来计算优惠金额,订单数量在 100 到 200 之间时优惠 10 元,订单数量在 200 到 300 之间时优惠 20 元,订单数量超过 300 时优惠 30 元。我们可以使用 CASE
表达式编写以下 SQL 语句:
SELECT *,
CASE
WHEN order_num BETWEEN 100 AND 200 THEN 10
WHEN order_num BETWEEN 201 AND 300 THEN 20
ELSE 30
END AS discount_amount
FROM orders;
其中 order_num
是我们要判断的订单数量,BETWEEN
操作符用来判断一个值是否在两个值之间,如果订单数量在 100 到 200 之间,则返回 10,否则继续判断是否在 201 到 300 之间,如果是,则返回 20,否则返回默认的 30。最后使用 AS
命令为计算结果设置一个别名 discount_amount
。
示例二:根据成绩计算评级
我们也可以通过 CASE
表达式来根据成绩计算评级。假设学生分数在 80 分以上为 A,60 分以上为 B,60 分以下为 C。我们可以使用以下 SQL 语句来实现:
SELECT *,
CASE
WHEN score >= 80 THEN 'A'
WHEN score >= 60 THEN 'B'
ELSE 'C'
END AS grade
FROM scores;
其中 score
代表学生的成绩,根据不同的取值范围返回不同的评级,最后将结果设置为别名 grade
。
通过以上两个示例,我们可以发现 CASE
表达式是一个非常强大的条件判断工具,在复杂的查询中能够帮助我们轻松实现需要的功能。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SQL 中 CASE 表达式的使用方式 - Python技术站