SQL中case when的使用方法

2025-01-14 22:13:39   小编

SQL 中 case when 的使用方法

在 SQL 编程领域,case when 是一个极为实用的语句,它为数据处理和查询提供了强大的条件判断能力。

case when 的基本语法有两种形式。简单形式为 CASE expression WHEN value1 THEN result1 WHEN value2 THEN result2 ELSE result3 END,这里的 expression 是要进行比较的表达式,value 是与之比较的值,当 expression 等于某个 value 时,就返回对应的 result,若都不匹配则返回 ELSE 后的 result

另一种是搜索形式:CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ELSE result3 END,其中 condition 是条件表达式,只要满足某个条件,就返回相应的 result

在实际应用场景中,case when 能发挥巨大作用。例如在员工薪资处理方面,公司决定根据员工绩效调整工资。若绩效评分为 A,工资增加 20%;评分为 B,增加 15%;评分为 C,增加 10%。使用 case when 语句就可以轻松实现:

UPDATE employees
SET salary = 
    CASE performance_rating
        WHEN 'A' THEN salary * 1.2
        WHEN 'B' THEN salary * 1.15
        WHEN 'C' THEN salary * 1.1
        ELSE salary
    END;

在数据分析时,case when 也能对数据进行分类统计。假设要统计学生成绩等级,90 分及以上为 优秀,80 - 89 分为 良好,70 - 79 分为 中等,60 - 69 分为 及格,60 分以下为 不及格。可以这样写查询语句:

SELECT 
    CASE 
        WHEN score >= 90 THEN '优秀'
        WHEN score >= 80 AND score < 90 THEN '良好'
        WHEN score >= 70 AND score < 80 THEN '中等'
        WHEN score >= 60 AND score < 70 THEN '及格'
        ELSE '不及格'
    END AS grade_level,
    COUNT(*) AS student_count
FROM students
GROUP BY 
    CASE 
        WHEN score >= 90 THEN '优秀'
        WHEN score >= 80 AND score < 90 THEN '良好'
        WHEN score >= 70 AND score < 80 THEN '中等'
        WHEN score >= 60 AND score < 70 THEN '及格'
        ELSE '不及格'
    END;

掌握 case when 的使用方法,能够让 SQL 开发者更加灵活高效地处理数据,无论是简单的数据转换还是复杂的业务逻辑实现,它都能成为强大的助力工具。通过不断练习和实践,在实际项目中就能更加游刃有余地应对各种数据处理需求。

TAGS: SQL语句 条件表达式 SQL技巧 SQL_Case_When

欢迎使用万千站长工具!

Welcome to www.zzTool.com