Oracle CASE .. WHEN表达式在Oracle SQL中的使用

Oracle CASE .. WHEN表达式在Oracle SQL中的使用

在本文中,我们将介绍Oracle SQL中的CASE .. WHEN表达式的使用。CASE .. WHEN是一种条件语句,在特定的条件下选择不同的结果。它可以在查询中根据条件执行不同的逻辑,提供了一种灵活的控制流结构。

阅读更多:Oracle 教程

CASE .. WHEN的基本语法

CASE .. WHEN语句的基本语法如下:

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

其中,condition1、condition2等是条件表达式,result1、result2等是根据条件返回的结果。ELSE子句是可选的,用于指定当没有条件匹配时返回的结果。

示例:使用CASE .. WHEN进行简单的条件判断

下面是一个使用CASE .. WHEN进行简单条件判断的示例:

SELECT name,
       CASE WHEN age < 18 THEN 'Underage'
            ELSE 'Adult'
       END AS age_category
FROM students;
SQL

上述查询会根据学生的年龄判断其所属年龄分类,并返回对应的结果。如果学生的年龄小于18岁,返回’Underage’,否则返回’Adult’。

示例:使用CASE .. WHEN进行复杂的条件判断

CASE .. WHEN也可以用于进行复杂的条件判断。下面是一个示例,根据学生的年龄和成绩判断其综合评级:

SELECT name,
       CASE WHEN age < 18 AND score > 90 THEN 'Excellent'
            WHEN age >= 18 AND score > 80 THEN 'Good'
            WHEN age >= 18 AND score <= 80 THEN 'Average'
            ELSE 'Unknown'
       END AS rating
FROM students;
SQL

上述查询会根据学生的年龄和成绩判断评级,并返回对应的结果。如果学生年龄小于18岁且成绩大于90,返回’Excellent’;如果学生年龄大于等于18岁且成绩大于80,返回’Good’;如果学生年龄大于等于18岁且成绩小于等于80,返回’Average’;否则返回’Unknown’。

示例:使用CASE .. WHEN进行多条件的条件判断

CASE .. WHEN还可以用于进行多条件的条件判断。下面是一个示例,根据学生的成绩判断其等级:

SELECT name,
       CASE WHEN score >= 90 THEN 'A'
            WHEN score >= 80 THEN 'B'
            WHEN score >= 70 THEN 'C'
            WHEN score >= 60 THEN 'D'
            ELSE 'F'
       END AS grade
FROM students;
SQL

上述查询会根据学生的成绩判断等级,并返回对应的结果。如果学生的成绩大于等于90,返回’A’;如果学生的成绩大于等于80,返回’B’;如果学生的成绩大于等于70,返回’C’;如果学生的成绩大于等于60,返回’D’;否则返回’F’。

示例:使用CASE .. WHEN进行嵌套的条件判断

CASE .. WHEN还可以进行嵌套的条件判断。下面是一个示例,根据学生的成绩判断其等级,并区分出优秀和良好:

SELECT name,
       CASE WHEN score >= 90 THEN 'A'
            WHEN score >= 80 THEN 'B'
            WHEN score >= 70 THEN 'C'
            WHEN score >= 60 THEN 'D'
            WHEN score >= 50 THEN 'Good'
            ELSE 'Fail'
       END AS grade
FROM students;
SQL

上述查询会根据学生的成绩判断等级,并返回对应的结果。如果学生的成绩大于等于90,返回’A’;如果学生的成绩大于等于80,返回’B’;如果学生的成绩大于等于70,返回’C’;如果学生的成绩大于等于60,返回’D’;如果学生的成绩大于等于50,返回’Good’;否则返回’Fail’。

总结

本文介绍了Oracle SQL中CASE .. WHEN表达式的使用。CASE .. WHEN语句可以根据不同的条件返回不同的结果,用于在查询中进行条件判断和逻辑控制。无论是简单的条件判断、复杂的条件判断还是多条件判断,CASE .. WHEN都能提供灵活的功能。通过合理使用CASE .. WHEN,可以使查询更加精确和可读性更高。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册