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;

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

原文地址:https://www.cnblogs.com/zhengcheng/p/4170219.html