📅  最后修改于: 2023-12-03 15:03:47.731000             🧑  作者: Mango
在 PL/SQL 中,决策语句主要有以下四种:
下面我们将对每种语句进行详细介绍。
if-then 语句用于在条件满足的情况下执行一些代码。它的语法如下:
IF condition THEN
statement(s);
END IF;
其中,condition 是一个布尔表达式,如果条件满足,statement(s) 中的语句将会被执行。如果条件不满足,那么 IF 块中的语句将不会被执行。
以下是一个使用 if-then 语句的示例:
DECLARE
score number:= 85;
BEGIN
IF score >= 60 THEN
dbms_output.put_line('你已经及格了!');
END IF;
END;
输出结果为:"你已经及格了!"
if-then-else 语句用于在条件满足和不满足的情况下执行不同的代码。它的语法如下:
IF condition THEN
statement(s) for true condition;
ELSE
statement(s) for false condition;
END IF;
其中,condition 是一个布尔表达式。如果条件满足,将执行第一个 statement(s) 块中的代码;如果条件不满足,将执行第二个 statement(s) 块中的代码。
以下是一个使用 if-then-else 语句的示例:
DECLARE
score number:= 70;
BEGIN
IF score >= 60 THEN
dbms_output.put_line('你已经及格了!');
ELSE
dbms_output.put_line('你还需要继续努力!');
END IF;
END;
输出结果为:"你已经及格了!"
Nested if-then 语句用于在某个条件满足的情况下,继续检查其他条件。它的语法如下:
IF condition1 THEN
statement(s) for condition1;
IF condition2 THEN
statement(s) for condition2;
END IF;
END IF;
其中,condition1 和 condition2 是布尔表达式。如果满足 condition1,则执行第一个 statement(s) 块中的代码。如果再满足 condition2,则执行第二个 statement(s) 块中的代码。
以下是一个使用 Nested if-then 语句的示例:
DECLARE
score number:= 80;
BEGIN
IF score >= 60 THEN
dbms_output.put_line('你已经及格了!');
IF score >= 80 THEN
dbms_output.put_line('而且还很优秀!');
END IF;
END IF;
END;
输出结果为:"你已经及格了!" 和 "而且还很优秀!"
if-then-elsif-then-else 语句用于在多个条件情况下执行不同的代码。它的语法如下:
IF condition1 THEN
statement(s) for condition1;
ELSIF condition2 THEN
statement(s) for condition2;
ELSIF condition3 THEN
statement(s) for condition3;
ELSE
statement(s) for all other conditions;
END IF;
其中,condition1、condition2 和 condition3 是布尔表达式。如果满足 condition1,则执行第一个 statement(s) 块中的代码。如果不满足 condition1 但满足 condition2,则执行第二个 statement(s) 块中的代码,以此类推。
以下是一个使用 if-then-elsif-then-else 语句的示例:
DECLARE
score number:= 75;
BEGIN
IF score >= 90 THEN
dbms_output.put_line('你真的很优秀!');
ELSIF score >= 80 THEN
dbms_output.put_line('你很不错!');
ELSIF score >= 70 THEN
dbms_output.put_line('你还需再加把劲!');
ELSE
dbms_output.put_line('你需要更加努力!');
END IF;
END;
输出结果为:"你很不错!"