MySQL中怎么使用CASE语句(mysql中case使用)

MySQL中怎么使用CASE语句?

MySQL中的CASE语句可以在查询和更新语句中使用。它允许使用条件来执行不同的操作,从而使查询或更新更加灵活。在本文中,我们将介绍MySQL中使用CASE语句的基本语法和示例。

基本语法

MySQL中的CASE语句的基本语法如下:

CASE expr
WHEN value1 THEN result1
WHEN value2 THEN result2
...
WHEN valuen THEN resultn
ELSE default_result
END

其中,expr是要比较的表达式,value1、value2、…、valuen是expr可能的值,result1、result2、…、resultn是expr等于相应value时要返回的结果,而default_result是expr不等于任何value时要返回的结果。

示例

下面的示例演示了如何在MySQL中使用CASE语句。

例1:根据price列的值计算出折扣价和标准价:

SELECT
product_id,
price,
CASE
WHEN price >= 1000 THEN price * 0.9
WHEN price >= 500 THEN price * 0.95
ELSE price
END AS discount_price,
CASE
WHEN price >= 1000 THEN '高档商品'
WHEN price >= 500 THEN '中档商品'
ELSE '廉价商品'
END AS level
FROM products;

在该查询语句中,CASE语句对每一行计算了折扣价和标准价,并为每个商品分配了一个级别。结果如下:

product_id | price | discount_price | level
-----------|-------|----------------|--------
1 | 950 | 950 | 廉价商品
2 | 1250 | 1125 | 高档商品
3 | 550 | 522.5 | 中档商品
4 | 780 | 741 | 中档商品

例2:根据gender列的值计算出男性、女性和未知性别的员工数量:

SELECT
COUNT(*) AS total,
SUM(CASE WHEN gender = '男' THEN 1 ELSE 0 END) AS male,
SUM(CASE WHEN gender = '女' THEN 1 ELSE 0 END) AS female,
SUM(CASE WHEN gender IS NULL THEN 1 ELSE 0 END) AS unknown
FROM employees;

在该查询语句中,CASE语句按照gender列中的值计算了男性、女性和未知性别的员工数量。结果如下:

total | male | female | unknown
------|------|--------|--------
6 | 2 | 2 | 2

总结

通过上述示例,我们可以看出MySQL中使用CASE语句的灵活性和实用性。如果您需要在查询或更新中使用条件语句,可以考虑使用MySQL的CASE语句。


数据运维技术 » MySQL中怎么使用CASE语句(mysql中case使用)