CASE 语句用于根据条件返回不同值,其语法为:CASE WHEN condition_1 THEN result_1 WHEN condition_2 THEN result_2 ELSE default_result END。它可以用于:定义条件、指定结果、提供默认结果。其他用法包括值转换、检查 NULL 值、选择最大或最小值。

MySQL 中 CASE 的用法
CASE 语句在 MySQL 中用于根据指定的条件返回不同的值。它的语法如下:
CASE WHEN condition_1 THEN result_1 WHEN condition_2 THEN result_2 ELSE default_result END
如何使用 CASE 语句?
- 定义条件:使用 WHEN 子句指定要评估的条件。
- 指定结果:如果条件为真,则返回相应的结果。
- 提供默认结果:使用 ELSE 子句指定当所有条件都不为真时的默认值。
示例:
假设有一张名为 customers 的表格,其中包含以下列:
-
customer_id:客户 ID -
customer_type:客户类型(例如 Standard、Premium) -
discount:根据客户类型提供的折扣
要根据客户类型计算折扣,可以使用 CASE 语句:
SELECT customer_id,
CASE
WHEN customer_type = 'Standard' THEN 0.1
WHEN customer_type = 'Premium' THEN 0.2
ELSE 0
END AS discount
FROM customers;其他用法:
CASE 语句还可以用于:
- 将值转换为其他类型(使用 CAST() 函数)
- 检查 NULL 值(使用 IS NULL 和 IS NOT NULL)
- 从多个条件中选择最大值或最小值(使用 GREATEST() 和 LEAST() 函数)
注意:
- CASE 语句中的条件必须都为同一种类型。
- ELSE 子句是可选的,但如果不指定默认结果,则可能会返回 NULL 值。
- 可以嵌套 CASE 语句以创建更复杂的结果集。










