📜  PLSQL 中的决策(if-then , if-then-else, Nested if-then, if-then-elsif-then-else )(1)

📅  最后修改于: 2023-12-03 15:03:47.731000             🧑  作者: Mango

PL/SQL中的决策语句

在 PL/SQL 中,决策语句主要有以下四种:

  • if-then
  • if-then-else
  • Nested if-then
  • if-then-elsif-then-else

下面我们将对每种语句进行详细介绍。

if-then

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-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

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-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;

输出结果为:"你很不错!"