pl/sql 流程控制语句

Posted h-dada

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pl/sql 流程控制语句相关的知识,希望对你有一定的参考价值。

相当于java中的if else语句

IF  布尔表达式 THEN
PL/SQL SQL 语句;
END IF;

IF 布尔表达式 THEN
PL/SQL SQL 语句;
ELSE
其它语句;
END IF;

IF     布尔表达式   THEN
PL/SQL SQL 语句;
ELSIF  其它布尔表达式  THEN
其它语句;
ELSIF  其它布尔表达式  THEN
其它语句;
ELSE
其它语句;
END IF;

 

提示: ELSIF 不能写成 ELSEIF

要求: 查询出 150号 员工的工资, 若其工资大于或等于 10000 则打印 ‘salary >= 10000‘;
若在 5000 到 10000 之间, 则打印 ‘5000<= salary < 10000‘; 否则打印 ‘salary < 5000‘

 

declare
  v_sal employees.salary%type;
 begin
  select salary into v_sal from employees where employee_id=100;
  if v_sal>=10000 then
  dbms_output.put_line(salary>=10000);
  elsif v_sal>=5000 then
  dbms_output.put_line(5000<=salary<10000);
  else dbms_output.put_line(salary<5000);
  end if;
 end;

 

case表达式

CASE selector
WHEN expression1 THEN result1
WHEN expression2 THEN result2
WHEN expressionN THEN resultN
[ ELSE resultN+1]
END;
例子:要求: 查询出 150号 员工的工资, 若其工资大于或等于 10000 则打印 ‘salary >= 10000‘; 
若在 5000 到 10000 之间, 则打印 ‘5000<= salary < 10000‘; 否则打印 ‘salary < 5000‘

 declare
  v_sal employees.salary%type;
  v_temp varchar2(30);
 begin
  select salary into v_sal from employees where employee_id=100;
    v_temp:=
    case trunc(v_sal/50000)
    when 2 then
    salary>=10000
    when 1 then
    5000<=salary<10000
    else salary<5000
    end;
    dbms_output.put_line(v_sal||,||v_temp);
 end;

要求: 查询出 122 号员工的 JOB_ID, 若其值为 ‘IT_PROG‘, 则打印 ‘GRADE: A‘;
‘AC_MGT‘, 打印 ‘GRADE B‘,
‘AC_ACCOUNT‘, 打印 ‘GRADE C‘;
否则打印 ‘GRADE D‘

/SQL> declare
  2     v_job_id varchar2(10);
  3     v_temp varchar2(10);
  4  begin
  5  select job_id into v_job_id from employees where employee_id=100;
  6  v_temp:=
  7  case v_job_id when IT_PROG then A
  8               when AC_MGT then B
  9               when AC_ACCOUNT then C
 10              else D
 11             end;
 12  dbms_output.put_line(v_job_id||,||v_temp);
 13  end;

 

 

 
































以上是关于pl/sql 流程控制语句的主要内容,如果未能解决你的问题,请参考以下文章

pl/sql流程控制语句if else条件选择语句

Oracle之PL/SQL编程_流程控制语句

PL/SQL流程控制

oracle-PL/SQL1

PL/SQL程序设计流程控制

PL/SQL 03 流程控制