MySQL中的CASE WHEN语句是一种条件语句,类似于其他编程语言中的if/else语句。通过它可以实现根据不同条件进行不同操作或者返回不同的结果。它的基本语法如下:
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE else_result
END
其中,”expression”通常是一个字段或表达式,而”WHEN value THEN result”用于指定在满足某个条件时的返回值,ELSE用于指定所有条件都不成立时的返回值。下面举个例子来说明:
假设我们有一个名为”orders”的订单表,包含订单编号、客户名称、订单日期和订单金额等字段。我们需要根据订单金额分别将其分为三档:高、中和低。我们可以使用以下代码实现:
SELECT order_id,
customer_name,
order_date,
order_amount,
CASE
WHEN order_amount > 10000 THEN 'high'
WHEN order_amount BETWEEN 5000 AND 10000 THEN 'medium'
ELSE 'low'
END AS amount_level
FROM orders;
在这个例子中,通过 CASE WHEN 语句将订单金额分为了三档,当订单金额大于10000时返回”high”,当订单金额介于5000和10000之间时返回”medium”,否则返回”low”。同时,通过 AS 将新的计算字段命名为 amount_level。
除了上述语法外,CASE WHEN语句还支持其他的复杂形式,比如嵌套CASE WHEN语句以及使用聚合函数等。具体用法可以根据实际情况进行拓展和应用。