在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语句来实现自定义的逻辑和转换。