PL/SQL与SQL(Oracle)Case语句

来源:互联网 发布:淘宝摩托车配件 编辑:程序博客网 时间:2024/05/21 17:25

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

--sql中的case用于分支判断并返回某个值。select empno , ename, deptno ,  case deptno  when 10 then '总经办'  when 20 then '综管部'  when 30 then '市场部'  else '其他'endfrom emp;select empno , ename, deptno ,  case   when deptno=10 then '总经办'  when deptno=20 then '综管部'  when deptno=30 then '市场部'  else '其他'endfrom 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;

有待完善….

0 0
原创粉丝点击