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;

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。