码迷,mamicode.com
首页 > 数据库 > 详细

pl/sql(二) 流程控制语句

时间:2018-05-21 21:17:56      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:lin   int   rom   selector   type   ase   java   varchar2   express   

相当于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(二) 流程控制语句

标签:lin   int   rom   selector   type   ase   java   varchar2   express   

原文地址:https://www.cnblogs.com/h-dada/p/9069108.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!