Plsql 嵌套IF';PL/SQL中的s

Plsql 嵌套IF';PL/SQL中的s,plsql,nested-if,Plsql,Nested If,我试图在pl/sql块中编写嵌套的IFs。我该怎么安排呢 IF r1.CABLE_TYPE = "A" THEN var_root = FC_CPSCBPR1.C_111_SCPSCBP 我现在必须包括逻辑 If var_root is "TRUE" /*If the value is populated*/ THEN IF ... THEN Elsif var_root is "FALSE" /*If the value is not found*

我试图在pl/sql块中编写嵌套的IFs。我该怎么安排呢

IF r1.CABLE_TYPE = "A" THEN
var_root = FC_CPSCBPR1.C_111_SCPSCBP
我现在必须包括逻辑

If var_root is "TRUE" /*If the value is populated*/
  THEN 
       IF ...
            THEN
Elsif var_root is "FALSE" /*If the value is not found*/

      THEN
查看嵌套的IF语句。
如果要结束每项操作,则需要一个
结束

您还可以拥有所需的任意多个语句。例如

DECLARE
  PROCEDURE p (sales NUMBER)
  IS
    bonus  NUMBER := 0;
  BEGIN 
    IF sales > 50000 THEN
      bonus := 1500;
    ELSIF sales > 35000 THEN
      bonus := 500;
    ELSE
      bonus := 100;
    END IF;

    DBMS_OUTPUT.PUT_LINE (
      'Sales = ' || sales || ', bonus = ' || bonus || '.'
    );
  END p;
BEGIN
  p(55000);
  p(40000);
  p(30000);
END;
/

看看这个PL/SQL块结构示例-您需要记住使用
end IF
和分号
IF
语句中的每一个语句作为一个封闭的代码块结束

BEGIN

  IF 10 > 5 THEN

    IF 10 < 20 THEN
      dbms_output.put_line('statement 1 from nested if');
    ELSE
      dbms_output.put_line('statement 2 from nested if');
    END IF;

  ELSE
    dbms_output.put_line('statement not from nested if');
  END IF;

END;
开始
如果10>5,则
如果10<20,则
dbms_output.put_行('nested if'中的语句1');
其他的
dbms_output.put_行('nested if'中的语句2');
如果结束;
其他的
dbms_output.put_line('statement not from nested if');
如果结束;
结束;

如果我要求,当我的奖金=(销售-配额)/4得到满足时,我必须再添加一条If语句。@soomastyam:我在其中添加了一条If语句-您应该能够使用上面的示例将它们嵌套到任意级别。不确定这是否是您的问题的一部分,但您需要对字符文本使用单引号,例如
'A'
,不是
“A”
。您的问题不清楚。嵌套IF语句有什么问题?
BEGIN

  IF 10 > 5 THEN

    IF 10 < 20 THEN
      dbms_output.put_line('statement 1 from nested if');
    ELSE
      dbms_output.put_line('statement 2 from nested if');
    END IF;

  ELSE
    dbms_output.put_line('statement not from nested if');
  END IF;

END;