MySQLCaseWhen多个条件详解

一、MySQLCaseWhen的基本语法

MySQL中,CASE WHEN语法是一种操作符,可以根据一个或多个条件执行不同的操作。

其基本语法为:

CASE 
   WHEN condition1 THEN result1
   WHEN condition2 THEN result2
   WHEN conditionN THEN resultN
   ELSE result
END;

其中,CASE是操作符的名称,condition1, condition2, conditionN是条件,result1, result2, resultN是对应条件的结果,ELSE result是当所有条件都不成立时返回的结果。

二、MySQLCaseWhen多个条件的使用

MySQLCaseWhen语法可以同时处理多个条件,只需要在WHEN之后再添加一个条件即可。

例如,我们可以使用MySQLCaseWhen多个条件来查询一个成绩区间的所有学生:

SELECT student_name, 
CASE 
   WHEN score  60 and score  70 and score  80 and score <= 90 THEN '良好'
   ELSE '优秀'
END as '成绩等级'
FROM students;

以上语句会查询students表中每个学生的成绩,并将成绩按照条件进行分类,最后返回学生名称和成绩等级。

三、使用MySQLCaseWhen进行关联选取

MySQLCaseWhen还可以用于多张表的关联选取,通过CASE语句可以实现在不同表中根据不同条件查询返回相应的结果。

例如,我们可以使用MySQLCaseWhen在两个表中查询每个产品的总销售量和销售价格:

SELECT p.product_name, 
CASE 
   WHEN sum(o.quantity) = 50 and sum(o.quantity) < 100 THEN '中等销量'
   ELSE '高销量'
END as '销售量',
CASE 
   WHEN avg(o.price) = 10 and avg(o.price) < 50 THEN '中等价产品'
   ELSE '高价产品'
END as '价格段'
FROM products p
JOIN orders o
ON p.product_id = o.product_id
GROUP BY p.product_name;

以上语句会查询出products表中每个产品的总销售量和平均销售价格,并将销售量和价格段按照条件分类,最后返回产品名称、销售量和价格段。

四、使用MySQLCaseWhen进行数据转换

MySQLCaseWhen还可以用于数据转换,例如将数据类型从字符串转换为数字,或从数字转换为字符串。

例如,我们可以使用MySQLCaseWhen将gender字段从字符串类型转换为数字类型:

SELECT student_name, 
CASE 
   WHEN gender = 'male' THEN 1
   ELSE 0
END as 'gender_num'
FROM students;

以上语句会查询出students表中每个学生的姓名和性别,并将性别转换为数字类型,male为1,female为0。

五、使用MySQLCaseWhen进行数据筛选

MySQLCaseWhen还可以用于数据筛选,例如通过条件筛选出满足条件的数据。

例如,我们可以使用MySQLCaseWhen将查询出雇员工资大于2000的信息:

SELECT e.last_name, e.salary, 
CASE 
   WHEN salary > 2000 THEN '高薪'
   ELSE '低薪'
END as '薪资水平'
FROM employees e;
WHERE salary > 2000;

以上语句会查询出employees表中工资大于2000的员工信息,并将工资按照条件分类,最后返回员工姓名、工资和薪资水平。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/249064.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝的头像小蓝
上一篇 2024-12-12 13:31
下一篇 2024-12-12 13:31

相关推荐

发表回复

登录后才能评论