在SQL中,CASE语句是一种条件表达式,用于在查询中根据条件返回不同的结果。它可以根据条件进行逻辑判断,并根据判断结果返回不同的值。

CASE语句有两种形式:简单CASE表达式和搜索CASE表达式。

1. 简单CASE表达式:

简单CASE表达式基于一个表达式进行比较,并根据比较结果返回不同的值。它的语法如下:

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

其中,expression是要进行比较的表达式,value1、value2等是待比较的值,result1、result2等是与每个值对应的结果。如果expression的值与某个value相等,则返回对应的result值。如果没有匹配的值,则返回ELSE后面的result值。以下是一个简单CASE表达式的示例:

SELECT name, age,
    CASE gender
        WHEN 'M' THEN 'Male'
        WHEN 'F' THEN 'Female'
        ELSE 'Unknown'
    END AS gender_text
FROM users;

在上面的示例中,根据gender字段的值,将其转换为相应的文本值。

2. 搜索CASE表达式:

搜索CASE表达式没有固定的比较值,它根据一系列条件进行逻辑判断,并返回满足条件的结果。它的语法如下:

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

其中,condition1、condition2等是待判断的条件,result1、result2等是与每个条件对应的结果。如果某个条件为真,则返回对应的result值。如果没有条件为真,则返回ELSE后面的result值。以下是一个搜索CASE表达式的示例:

SELECT name, age,
    CASE
        WHEN age < 18 THEN 'Minor'
        WHEN age >= 18 AND age < 65 THEN 'Adult'
        ELSE 'Senior'
    END AS age_group
FROM users;

在上面的示例中,根据age字段的值,将其划分为不同的年龄组。

CASE语句在SQL中非常灵活,可以根据不同的条件返回不同的结果。您可以根据具体的业务需求使用CASE语句来实现自定义的逻辑和转换。