暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL case when表达式


CASE WHEN
 在 MySQL 中是一种条件表达式,用于根据不同的条件返回不同的值或执行不同的操作。


一、基本语法
CASE expression
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
   ...
    ELSE default_result
END

二、示例用法

示例 1:根据数值范围返回不同结果

假设有一个 salary
 列,您想要根据工资的不同范围返回不同的级别:

SELECT name, salary,
       CASE 
           WHEN salary < 5000 THEN 'Low'
           WHEN salary >= 5000 AND salary < 10000 THEN 'Medium'
           WHEN salary >= 10000 THEN 'High'
       END AS salary_level
FROM employees;

示例 2:根据条件判断返回不同字符串

假设有一个 status
 列,值为 'active'
 或 'inactive'
,您想要将其转换为更易读的文本:

SELECT id, status,
       CASE status
           WHEN 'active' THEN '账户已激活'
           WHEN 'inactive' THEN '账户未激活'
       END AS status_description
FROM user_accounts;

示例 3:在 UPDATE
 语句中使用

假设您想要根据条件更新 discount
 列的值:

UPDATE orders
SET discount = CASE 
                 WHEN total_amount > 1000 THEN 0.1
                 WHEN total_amount > 500 AND total_amount <= 1000 THEN 0.05
                 ELSE 0
             END;


在 MySQL 中如何使用 ELSEIF 子句

在 MySQL 中,没有 ELSEIF
 关键字 ,但是您可以通过嵌套 CASE WHEN
 表达式来实现类似 ELSEIF
 的逻辑。


以下是一个示例,假设您有一个 sales
 表,其中有 amount
 列,您希望根据销售金额的不同范围进行分类:

SELECT amount,
       CASE
           WHEN amount < 100 THEN 'Low'
           WHEN amount >= 100 AND amount < 500 THEN 'Medium'
           WHEN amount >= 500 THEN 'High'
       END AS category
FROM sales;

如果您想要实现类似 ELSEIF
 的多层判断,像这样嵌套使用:

SELECT amount,
       CASE
           WHEN amount < 100 THEN 'Low'
           WHEN amount >= 100 AND amount < 500 THEN
               CASE
                   WHEN amount >= 300 THEN 'Medium-High'
                   ELSE 'Medium-Low'
               END
           WHEN amount >= 500 THEN 'High'
       END AS category
FROM sales;




点 击 下 方  关注+星标  公众号



文章转载自SQL 数据库入门学习,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论