mysql when case

阿里云服务器

在MySQL中,CASE是一个条件表达式,用于根据条件执行不同的操作。它可以用于SELECT语句、UPDATE语句、DELETE语句等。

CASE表达式的基本语法如下:

sql复制代码CASE  WHEN condition1 THEN result1WHEN condition2 THEN result2...ELSE result  END

在上面的语法中,你可以根据需要添加任意数量的WHEN子句。每个WHEN子句都包含一个条件和一个结果。如果条件满足,对应的结果将被返回。如果所有条件都不满足,则执行ELSE子句中的结果。

以下是一个使用CASE表达式的示例:

假设有一个"orders"表,其中包含"order_date"和"total_amount"列。你想根据订单的总金额计算订单的等级:

sql复制代码SELECT order_date, total_amount,CASE  WHEN total_amount > 1000 THEN 'High'  WHEN total_amount > 500 THEN 'Medium'  ELSE 'Low'  END AS order_levelFROM orders;

上述查询将返回订单日期、总金额和对应的订单等级。根据总金额的不同,CASE表达式将返回不同的等级。如果总金额大于1000,等级为"High";如果总金额大于500,等级为"Medium";否则,等级为"Low"。

你还可以在UPDATE语句中使用CASE表达式来更新表中的数据。例如:

sql复制代码UPDATE ordersSET status = CASE  WHEN total_amount > 1000 THEN 'High'  WHEN total_amount > 500 THEN 'Medium'  ELSE 'Low'  END;

上述更新语句将根据订单的总金额更新"orders"表中的"status"列。