SQL之CASE WHEN用法详解

CASE WHEN语句是SQL中常用的一种条件表达式。它可以根据指定的条件对数据进行分类,然后根据不同的分类执行不同的操作。

CASE WHEN语句的基本格式如下:

Copy Code
CASE expression
   WHEN value1 THEN result1
   WHEN value2 THEN result2
   ...
   WHEN valuen THEN resultn
   ELSE default_result
END

其中expression是要进行比较的值或表达式,value1、value2等是expression可能取到的值,result1、result2等是相应情况下的返回结果,default_result是当expression与所有的value都不匹配时的默认返回结果。

在使用CASE WHEN语句时,需要注意以下几点:

  1. 可以有多个WHEN子句,但只能有一个ELSE子句。
  2. 如果没有匹配的WHEN子句,且没有ELSE子句,则返回NULL。
  3. CASE WHEN语句的返回结果类型必须是一致的。

下面通过一个示例说明CASE WHEN语句的使用方法。假设我们有一个存储学生成绩的表Scores,其中包括了每个学生的姓名(Name)、科目(Subject)和成绩(Score)三个字段。现在我们想要按照以下规则将学生成绩分为三类:优秀(Score>=90),良好(Score>=70且Score<90)和及格(Score<70)。可以使用如下SQL语句来实现:

Copy Code
SELECT Name, Subject, Score,
       CASE WHEN Score>=90 THEN '优秀'
            WHEN Score>=70 AND Score<90 THEN '良好'
            ELSE '及格'
       END AS Grade
FROM Scores;

在这个例子中,我们使用CASE WHEN语句根据学生的成绩将其分为三类,并返回相应的等级。注意,在SELECT语句中需要为CASE WHEN语句指定一个别名(这里是Grade),以便在结果集中正确显示。

SQL之CASE WHEN用法详解

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注