SQL中CASE的用法

        在SQL中,CASE语句是一种条件表达式,用于根据条件执行不同的操作。它有两种形式:简单CASE表达式和搜索CASE表达式。

        简单CASE表达式的语法如下:

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

        其中,expression是要比较的值或表达式,value1、value2等是与expression进行比较的可能值,result1、result2等是与对应value匹配时返回的结果,ELSE部分是当expression与所有value都不匹配时返回的结果。

        举个例子,假设有一个名为gender的字段,值为'M'、'F'或其他值,我们想要根据gender的值返回不同的结果:

SELECT
    gender,
    CASE gender
        WHEN 'M' THEN 'Male'
        WHEN 'F' THEN 'Female'
        ELSE 'Unknown'
    END AS gender_description
FROM
    employees;

        搜索CASE表达式的语法如下:

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

        其中,condition1、condition2等是要判断的条件,result1、result2等是与对应condition匹配时返回的结果,ELSE部分是当所有condition都不匹配时返回的结果。

        举个例子,假设有一个名为salary的字段,我们想要根据salary的值返回不同的等级:

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

        这样就可以根据不同的条件返回不同的结果。CASE语句在SQL中非常有用,可以用于条件判断、数据转换和结果分类等场景。

注意:在SQL中,CASE语句按顺序评估每个条件,并返回第一个满足条件的结果。如果有多个条件都满足,只会执行第一个满足条件的结果。

        所以使用 case 可以避免同一条数据因为处理前后分别满足了不同的条件,从而导致一条数据被多次处理的情况。

你可能感兴趣的:(sql,数据库)