📜  PL SQL-条件(1)

📅  最后修改于: 2023-12-03 14:45:31.620000             🧑  作者: Mango

PL/SQL 条件语句

在 PL/SQL 中,可以使用条件语句来根据不同的条件来执行不同的代码块。条件语句主要由 IF 和 CASE 两种语句构成。

IF 语句

IF 语句用于根据一个条件表达式来选择不同的执行路径。IF 语句可以包含一个可选的 ELSE 分支,用于处理条件为假的情况。

下面是一个 IF 语句的示例:

IF 条件表达式 THEN
    执行代码块1;
ELSE
    执行代码块2;
END IF;

其中,条件表达式可以是任何返回布尔值的表达式。如果条件表达式的值为真,则会执行代码块1,否则会执行代码块2。

CASE 语句

CASE 语句用于根据一个表达式的值来选择不同的执行路径。CASE 语句可以使用简单 CASE 和搜索 CASE 两种形式。

简单 CASE

简单 CASE 通过比较一个表达式和一系列常量值来确定要执行的代码块。如果表达式的值等于其中某个常量值,则执行相应的代码块。如果表达式的值不等于任何一个常量值,则执行可选的 ELSE 分支。

下面是一个简单 CASE 语句的示例:

CASE 表达式
    WHEN 常量值1 THEN
        执行代码块1;
    WHEN 常量值2 THEN
        执行代码块2;
    ELSE
        执行代码块3;
END CASE;
搜索 CASE

搜索 CASE 通过一系列条件表达式和相应的代码块来确定要执行的代码块。如果某个条件表达式的值为真,则执行相应的代码块。如果所有条件的值都为假,则执行可选的 ELSE 分支。

下面是一个搜索 CASE 语句的示例:

CASE
    WHEN 条件表达式1 THEN
        执行代码块1;
    WHEN 条件表达式2 THEN
        执行代码块2;
    ELSE
        执行代码块3;
END CASE;
示例

下面是一个使用 IF 和 CASE 语句的示例:

DECLARE
    score NUMBER := 90;
BEGIN
    IF score >= 90 THEN
        DBMS_OUTPUT.PUT_LINE('优秀');
    ELSIF score >= 80 THEN
        DBMS_OUTPUT.PUT_LINE('良好');
    ELSIF score >= 60 THEN
        DBMS_OUTPUT.PUT_LINE('及格');
    ELSE
        DBMS_OUTPUT.PUT_LINE('不及格');
    END IF;

    CASE score
        WHEN 90 THEN
            DBMS_OUTPUT.PUT_LINE('成绩等级为A');
        WHEN 80 THEN
            DBMS_OUTPUT.PUT_LINE('成绩等级为B');
        WHEN 70 THEN
            DBMS_OUTPUT.PUT_LINE('成绩等级为C');
        WHEN 60 THEN
            DBMS_OUTPUT.PUT_LINE('成绩等级为D');
        ELSE
            DBMS_OUTPUT.PUT_LINE('成绩等级为E');
    END CASE;
END;

输出结果为:

优秀
成绩等级为A