PL/SQL else if简介
下面的文章提供了一个PL/SQL else if的概要。PL/SQL的else if语句与上面的if子句一起使用,根据某些条件跳过或执行某个代码块。通常情况下,当有要求只检查一次条件,然后决定执行的代码时,我们只使用if语句。但是,当我们需要检查多个性质相似的条件时,并且这些条件都是相互依赖的,那么我们就需要使用else if语句。这个else if 梯子可以根据我们的需要和我们想在满足不同条件的情况下执行不同的代码块的条件来扩展到多次。
PL/SQL else if的语法
当if语句与else if一起使用时,作为PL/SQL的一个关键字,也被称为ELSIF,其语法如下所示。
IF Boolean expression 1 THEN block of code 1 ELSIF Boolean expression 2 THEN block of code 2 [ ELSIF Boolean expression 3 THEN block of code 3 ] ... [ ELSE block of code for else ] END IF;
在上面的语法中,我们所使用的术语是逐一给出的。
- 布尔表达式。将评估一个布尔值的表达式或语句。这可以是任何涉及两个值的比较的条件语句,也可以是逻辑运算符,如AND、OR和NOT,通过使用这些运算符,多个比较将返回一个布尔值作为结果。这里产生的布尔值成为决定性因素,以考虑是否应该执行这个条件后指定的进一步提及的代码块。
- 代码块。对于每一个相应的布尔表达式或条件,如果我们想在该条件为真时执行某个代码块,那么所有这些语句都包含在该代码块中。对于每个单独的布尔表达式,我们将在代码块内指定不同的语句来执行。
- **else的代码块:**在使用else if梯子时,ELSE语句本身的使用是可选的。如果你想指定如果if或elseif语句中提到的表达式都没有评估为真,那么你需要执行某些语句,那么这应该在else语句中的else代码块中指定。
**注意:**你可以根据程序的需要,将else if语句扩展到任何数量。对于每一个else if条件,都应该指定一个不同的代码块,其中包含不同的语句,当else if中的相应条件评估为真时,将被执行。
else if 语句的工作
- 上述语法的执行流程在此给出。如果布尔表达式1评估为真,那么代码1块将被执行,if-else,如果梯子流将在这里停止,控制将被转移到紧随整个else if块规范之后的行。
- 如果布尔表达式1的条件评估为false,那么执行流将进入ELSIF块,然后布尔表达式2将被评估,此后,同样的过程将重复用于所有指定的else if块。
- 在这种情况下,如果在if或else if语句中没有一个布尔表达式的条件被评估为真,那么在else语句中指定的代码块将被执行。
PL/SQL else if的例子
下面给出的是提到的例子。
让我们看看PL/SQL中else if语句的实现,以及某些例子的帮助。首先让我们看一下样本数据,我们将考虑在语句中使用select。在我们的PL/SQL数据库中,有一个现有的表,名字是customer_details。
要检查该表的现有内容,你可以使用以下查询语句。
代码。
SELECT * FROM customer_details;
输出。
例子#1
让我们创建一个函数,计算作为参数传递给它的特定商店ID的总账单金额。
这个函数的创建过程如下所示。
代码。
CREATE OR REPLACE FUNCTION retrieve_total_billAmt( store_id_value PLS_VARCHAR ) RETURN NUMBER IS total_bill_amt NUMBER := 0; BEGIN -- retrieve total bill amount SELECT SUM(bill_amount) INTO total_bill_amt FROM customers_details GROUP BY store_id HAVING store_id = store_id_value; -- return the total bill amount RETURN total_bill_amt; END;
运行和编译后,你可以在你的数据库中看到如下的输出。
输出。
现在,我们将为电子商店调用该函数,它将被检索到的总账单金额为39600。如果我们尝试在程序中使用下面的if else if条件,那么研究一下输出。
代码。
BEGIN IF retrieve_total_billAmt('ELECTRONICS') > 30000 THEN DBMS_OUTPUT.PUT_LINE('Total Bill Amount for Electronic store is above target'); ELSIF retrieve_total_billAmt('ELECTRONICS') <= 300000 AND retrieve_total_billAmt('ELECTRONICS') > 50000 THEN DBMS_OUTPUT.PUT_LINE( 'Total Bill Amount for Electronic store is extremely poor! Needs high attention!' ); ELSE DBMS_OUTPUT.PUT_LINE( 'Total Bill Amount for Electronic store is at lowest! Store in loss! Needs to shutdown!' ); END IF; END;
输出。
例子#2
代码。
DECLARE total_sales NUMBER := 650000; BEGIN IF total_sales > 500000 THEN DBMS_OUTPUT.PUT_LINE( 'The sales of the branch are going great!' ); ELSIF total_sales <= 500000 AND total_sales > 300000 THEN DBMS_OUTPUT.PUT_LINE( 'The sales of the branch is average and needs to improve!' ); ELSIF total_sales <= 300000 AND total_sales > 50000 THEN DBMS_OUTPUT.PUT_LINE( 'The sales of the branch is exteremely poor! Needs high attention!' ); ELSE DBMS_OUTPUT.PUT_LINE( 'The sales of the branch are at lowest! Branch in loss! Needs to shutdown!' ); END IF; END;
输出。
结论
在PL/SQL程序中使用else if条件是必要的,当我们想在满足某些条件时执行或跳过代码的某一部分。如果该条件为真,则执行相应的代码块,否则将检查不同的else if代码块。
推荐文章
这是一个关于PL/SQL else if的指南。在这里,我们分别讨论了介绍、else if语句的工作和例子。你也可以看看下面的文章来了解更多
The postPL/SQL else ifappeared first onEDUCBA.