开发者

SQL 中 CASE WHEN 及 SELECT CASE WHEN 的用法详解

开发者 https://www.devze.com 2025-10-09 09:02 出处:网络 作者: 思静鱼
目录SQL 中 CASE WHEN 及 SELECT CASE WHEN 的用法1. 基本语法结构2. 在 SELECT 语句中的用法示例1:简单条件判断示例2:等值比较(简单形式)3. 在 UPDATE 语句中的用法4. 在 ORDER BY 中的用法编程客栈5. 在 GROUP
目录
  • SQL 中 CASE WHEN 及 SELECT CASE WHEN 的用法
    • 1. 基本语法结构
    • 2. 在 SELECT 语句中的用法
      • 示例1:简单条件判断
      • 示例2:等值比较(简单形式)
    • 3. 在 UPDATE 语句中的用法
      • 4. 在 ORDER BY 中的用法编程客栈
        • 5. 在 GROUP BY 中的用法
          • 6. 嵌套 CASE WHEN 用法
            • 7. 在聚合函数中使用
              • 注意事项

              SQL 中 CASE WHEN 及 SELECT CASE WHEN 的用法

              CASE WHEN 是 SQL 中非常实用的条件表达式,它允许你在查询中实现条件逻辑。以下是详细的用法说明:

              1. 基本语javascript法结构

              CASE 
                  WHEN condition1 THEN result1
                  WHEN condition2 THEN result2
                  ...
                  ELSE default_result
              END

              或者简单形式:

              CASE expression 
                  WHEN value1 THEN result1
                  WHEN value2 THEN result2
                  ...
                  ELSE default_result
              END

              2. 在 SELECT 语句中的用法

              示例1:简单条件判断

              SELECT 
                  employee_name,
                  salary,
                  CASE 
                      WHEN salary > 10000 THEN '高薪'
                      WHEN salary > 5000 THEN '中等'
                      ELSE '一般'
                  END AS salary_level
              FROM employees;

              示例2:等值比较(简单形式)

              SELECT 
                  product_name,
                  CASE category_id
                      WHEN 1 THEN '电子产品'
                      WHEN 2 THEN '服装'
                      WHEN 3 THEN '食品'
                      ELSE '其他'
                  END AS category_name
              FROM products;

              3.编程客栈 在 UPDATE 语句中的用android

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

              4. 在 ORDER BY 中的用法

              SELECT * FROM customers
              ORDER BY 
                  CASE 
                      WHEN country = 'China' THEN 1
                      WHEN country = 'USA' THEN 2
                      ELSE 3
                  END;
              

              5. 在 GROUP BY 中的用法

              SELECT 
                  CASE 
                      WHEN age < 2php0 THEN '青少年'
                      WHEN age BETWEEN 20 AND 30 THEN '青年'
                      ELSE '成年'
                  END AS age_group,
                  COUNT(*) AS count
              FROM users
              GROUP BY age_group;
              

              6. 嵌套 CASE WHEN 用法

              SELECT 
                  student_name,
                  score,
                  CASE 
                      WHEN score >= 90 THEN 'A'
                      WHEN score >= 80 THEN 
                          CASE 
                              WHEN attendance_rate > 0.9 THEN 'B+'
                              ELSE 'B'
                          END
                      WHEN score >= 70 THEN 'C'
                      ELSE 'D'
                  END AS grade
              FROM students;
              

              7. 在聚合函数中使用

              SELECT 
                  department_id,
                  SUM(CASE WHEN gender = 'M' THEN 1 ELSE 0 END) AS male_count,
                  SUM(CASE WHEN gender = 'F' THEN 1 ELSE 0 END) AS female_count
              FROM employees
              GROUP BY department_id;
              

              注意事项

              1. CASE WHEN 会按顺序判断条件,第一个满足的条件会被执行,后面的条件将被忽略
              2. 如果没有条件满足且没有 ELSE 子句,结果将为 NULL
              3. 所有 THEN 子句返回的数据类型应该兼容
              4. 在复杂的 CASE 表达式中,适当使用括号可以提高可读性

              CASE WHEN 是 SQL 中非常强大的条件表达式,掌握它可以让你写出更加灵活和强大的查询语句。

              到此这篇关于SQL 中 CASE WHEN 及 SELECT CASE WHEN 的用法的文章就介绍到这了,更多相关sql case when和select case when用法内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

              0

              精彩评论

              暂无评论...
              验证码 换一张
              取 消

              关注公众号