SQL CASE语句
在SQL中,CASE
语句是用来执行条件判断的一种方法。它可以根据不同的条件返回不同的值。CASE
语句类似于其他编程语言中的switch
语句或者if-else
语句。在本文中,我们将详细讨论CASE
语句的用法和示例。
CASE
语句的语法
CASE
语句有两种形式:simple CASE
和searched CASE
。
Simple CASE语句的语法
简单CASE
语句的语法如下:
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE result
END
在简单CASE
语句中,expression
是需要进行比较的表达式,value1
, value2
, …是可能的取值,result1
, result2
, …是与各个取值对应的结果。如果expression
等于某个value
,则返回对应的result
,如果没有匹配的值,则返回ELSE
后面的result
。
Searched CASE语句的语法
搜索CASE
语句的语法如下:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result
END
在搜索CASE
语句中,每个WHEN
后面都跟着一个条件,如果该条件为真,则返回对应的结果。如果没有匹配的条件,则返回ELSE
后面的result
。
CASE
语句的示例
下面我们通过一些示例来演示CASE
语句的用法。
示例1:根据成绩判断等级
假设我们有一张students
表,包含学生的姓名和成绩,现在我们要根据成绩判断学生的等级。我们可以使用CASE
语句来实现:
SELECT
name,
grade,
CASE
WHEN grade >= 90 THEN 'A'
WHEN grade >= 80 THEN 'B'
WHEN grade >= 70 THEN 'C'
WHEN grade >= 60 THEN 'D'
ELSE 'F'
END AS level
FROM students;
在上面的示例中,根据学生的成绩判断其等级并返回对应的等级。
示例2:根据性别显示称谓
假设我们有一张customers
表,包含顾客的姓名和性别,现在我们要根据性别显示称谓,比如男性显示“先生”,女性显示“女士”。我们可以使用CASE
语句来实现:
SELECT
name,
gender,
CASE
WHEN gender = 'M' THEN '先生'
WHEN gender = 'F' THEN '女士'
ELSE '未知'
END AS title
FROM customers;
在上面的示例中,根据顾客的性别显示对应的称谓。
总结
CASE
语句是SQL中非常有用的一种条件判断方法,可以根据不同的条件返回不同的结果。在实际应用中,我们可以根据具体的需求灵活运用CASE
语句,使查询结果更加符合我们的期望。