📅  最后修改于: 2023-12-03 14:45:31.620000             🧑  作者: Mango
在 PL/SQL 中,可以使用条件语句来根据不同的条件来执行不同的代码块。条件语句主要由 IF 和 CASE 两种语句构成。
IF 语句用于根据一个条件表达式来选择不同的执行路径。IF 语句可以包含一个可选的 ELSE 分支,用于处理条件为假的情况。
下面是一个 IF 语句的示例:
IF 条件表达式 THEN
执行代码块1;
ELSE
执行代码块2;
END IF;
其中,条件表达式可以是任何返回布尔值的表达式。如果条件表达式的值为真,则会执行代码块1,否则会执行代码块2。
CASE 语句用于根据一个表达式的值来选择不同的执行路径。CASE 语句可以使用简单 CASE 和搜索 CASE 两种形式。
简单 CASE 通过比较一个表达式和一系列常量值来确定要执行的代码块。如果表达式的值等于其中某个常量值,则执行相应的代码块。如果表达式的值不等于任何一个常量值,则执行可选的 ELSE 分支。
下面是一个简单 CASE 语句的示例:
CASE 表达式
WHEN 常量值1 THEN
执行代码块1;
WHEN 常量值2 THEN
执行代码块2;
ELSE
执行代码块3;
END 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