Oracle基础 PL-SQL编程基础(2) 分支结构

一、分支结构

1、if语句

语法:

IF <布尔表达式> THEN

  PL/SQL和SQL语句

END IF;

示例:

DECLARE 

  v_count NUMBER := &n;

BEGIN

  IF v_count > 0 THEN

        DBMS_OUTPUT.put_line('正数');

  END IF;

END;

判断是否为正整数!

 

2、if...else...

语法

IF <布尔表达式> THEN

  PL/SQL 和 SQL 语句

ELSE

  其他语句

END IF;

示例:

DECLARE 

    v_count NUMBER := &n;

BEGIN

    IF v_count > 0 THEN

        DBMS_OUTPUT.put_line('正数');

    ELSE

        DBMS_OUTPUT.put_line('负数');

    END IF;

END;            

判断是否为正数或者负数!

 

3、多重if...else...结构

语法:

IF <布尔表达式> THEN

  PL/SQL 和 SQL 语句

ELSIF <其他布尔表达式> THEN

  PL/SQL 和 SQL 语句

ELSIF <其他布尔表达式> THEN

  PL/SQL 和 SQL 语句

ELSE

  PL/SQL 和 SQL 语句

END IF;

示例:

DECLARE 

  v_count NUMBER := &n;

BEGIN

  IF v_count > 0 THEN

        DBMS_OUTPUT.put_line('正数');

  ELSIF v_count < 0 THEN

        DBMS_OUTPUT.put_line('负数');

  ELSE

        DBMS_OUTPUT.put_line('');

  END IF;

END;

 

4、CASE语句语法:

格式一:

CASE 条件表达式

  WHEN 条件表达式结果1 THEN

    语句段1

  WHEN 条件表达式结果2 THEN

    语句段

  ......

  WHEN 条件表达式结果n THEN

    语句段n

  [ELSE 语句段]

END CASE;

示例:根据输入1-7显示星期

DECLARE

  v_week NUMBER := &S;

BEGIN

  CASE v_week

    WHEN 1 THEN

      DBMS_OUTPUT.PUT_LINE('星期一');

    WHEN 2 THEN

      DBMS_OUTPUT.PUT_LINE('星期二');

    WHEN 3 THEN

      DBMS_OUTPUT.PUT_LINE('星期三');

    WHEN 4 THEN

      DBMS_OUTPUT.PUT_LINE('星期四');

    WHEN 5 THEN

      DBMS_OUTPUT.PUT_LINE('星期五');

    WHEN 6 THEN

      DBMS_OUTPUT.PUT_LINE('星期六');

    WHEN 7 THEN

      DBMS_OUTPUT.PUT_LINE('星期日');

    ELSE

      DBMS_OUTPUT.PUT_LINE('输入错误');

  END CASE;

END;

注意: 一般用于等值判断的情况。

 

格式二:

CASE 

  WHEN 条件表达式1 THEN

    语句段1

  WHEN 条件表达式2 THEN

    语句段

  ......

  WHEN 条件表达式n THEN

    语句段n

  [ELSE 语句段]

END CASE;

示例:根据分数输出A,B,C,D,E

DECLARE

  V_SCORE NUMBER := &N;

BEGIN

  CASE

    WHEN V_SCORE >= 90 THEN

      DBMS_OUTPUT.PUT_LINE('A');

    WHEN V_SCORE >= 80 THEN

      DBMS_OUTPUT.PUT_LINE('B');

    WHEN V_SCORE >= 70 THEN

      DBMS_OUTPUT.PUT_LINE('C');

    WHEN V_SCORE >= 60 THEN

      DBMS_OUTPUT.PUT_LINE('D');

    ELSE

      DBMS_OUTPUT.PUT_LINE('E');

  END CASE;

END;

 注意:一般用于区间判断的情况。

 

你可能感兴趣的:(oracle基础)