MySQL中的CASE WHEN
语句是一种非常有用的控制流语句,它允许我们根据条件表达式的结果来执行不同的操作。在本文中,我将详细讲解CASE WHEN
的用法及说明。
基本语法
CASE WHEN
语句的一般格式如下:
CASE WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
WHEN conditionN THEN resultN
ELSE result
END
其中,condition1
至conditionN
是一系列条件表达式,如果第一个条件表达式为true
,则result1
将被执行;如果第二个条件表达式为true
,则result2
将被执行;以此类推。如果没有任何条件表达式为true
,则else
子句中的result
将被执行。
示例一
下面是一个例子,它演示了如何使用CASE WHEN
语句来将冷饮的价格乘以不同的倍数,具体倍数由购买数量决定:
SELECT product_name, unit_price,
CASE WHEN quantity < 6 THEN unit_price * 1.2
WHEN quantity >= 6 AND quantity <= 12 THEN unit_price * 1.1
ELSE unit_price * 1.05
END AS adjusted_price
FROM products
WHERE category = 'cold drinks';
在此示例中,我们假设购买量小于6的冷饮价格会涨价20%,购买量在6到12之间的冷饮价格会涨价10%,购买量大于12的冷饮价格会涨价5%。
示例二
下面是另一个例子,它演示了如何使用CASE WHEN
语句来计算学生的总成绩以及等级:
SELECT student_name, english, math, science,
english + math + science AS total_score,
CASE WHEN english + math + science >= 240 THEN 'A'
WHEN english + math + science >= 180 AND english + math + science < 240 THEN 'B'
WHEN english + math + science >= 120 AND english + math + science < 180 THEN 'C'
ELSE 'D'
END AS grade
FROM student_scores;
在此示例中,我们假设总分达到240及以上的学生能够获得A级成绩,总分达到180到239之间的学生获得B级成绩,总分达到120到179之间的学生获得C级成绩,其他学生获得D级成绩。
总结
CASE WHEN
语句是一种强大的控制流语句,它可以在SQL查询中执行不同的操作。需要注意的是,在使用CASE WHEN
语句时,一定要注意条件表达式和结果之间的映射关系。在实际使用中,我们需要根据具体情况来灵活运用CASE WHEN
语句,以达到我们的需求。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL中Case When用法及说明 - Python技术站