PL/SQL与SQL(Oracle)Case语句

(使用scott账户下的表)
1.Oracle SQL语句的case语句写法:

--sql中的case用于分支判断并返回某个值。
select empno , ename, deptno ,  
case deptno
  when 10 then '总经办'
  when 20 then '综管部'
  when 30 then '市场部'
  else '其他'
end
from emp;

select empno , ename, deptno ,  
case 
  when deptno=10 then '总经办'
  when deptno=20 then '综管部'
  when deptno=30 then '市场部'
  else '其他'
end
from emp;

2.PL/SQL语句的case语句写法:

plsql中语法1:

case 字段|变量
       when 比对值 then 执行语句...;
       [when 比对值 then 执行语句...;]
       [else 执行语句... ;]

plsql中语法2:

case 
       when 表达式 then 执行语句...;
       [when 表达式 then 执行语句...;]
       [else 执行语句... ;]
   end case;

PLSQL中的case可用于分支判断并<返回>,也可以用于分支判断<执行>
用case判断,并把返回值赋给某变量


declare
  v_dname varchar(20);
  v_deptno int:=10;
begin
  v_dname := 
  case v_deptno
  when 10 then '总经办' --返回值不要分号
  when 20 then '综管部'
  when 30 then '市场部'
  else '其他'
  end;   --case结束时只用end
  dbms_output.put_line(v_dname);  
end;

declare
  v_dname varchar(20);
  v_deptno int:=10;
begin
  v_dname := 
  case 
  when v_deptno=10 then '总经办'
  when v_deptno=20 then '综管部'
  when v_deptno=30 then '市场部'
  else '其他'
  end;
  dbms_output.put_line(v_dname);  
end;

用case判断,并在分支中给某变量赋值

declare
  v_dname varchar(20);
  v_deptno int:=10;
begin
  case v_deptno
  when 10 then v_dname:='总经办'; --分支判断中执行,分号结束
  when 20 then v_dname:='综管部';
  when 30 then v_dname:='市场部';
  else v_dname:='其他';
  end case; -- case结束时要end case;
  dbms_output.put_line(v_dname);  
end;

declare
  v_dname varchar(20);
  v_deptno int:=10;
begin
  case 
  when v_deptno=10 then v_dname:='总经办';
  when v_deptno=20 then v_dname:='综管部';
  when v_deptno=30 then v_dname:='市场部';
  else v_dname:='其他';
  end case; 
  dbms_output.put_line(v_dname);  
end;

有待完善….

转载于:https://www.cnblogs.com/ss0xt/p/6667188.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值