(使用scott账户下的表)

1.Oracle SQL语句的case语句写法:

  1. --sql中的case用于分支判断并返回某个值。
  2. select empno , ename, deptno ,
  3. case deptno
  4. when 10 then '总经办'
  5. when 20 then '综管部'
  6. when 30 then '市场部'
  7. else '其他'
  8. end
  9. from emp;
  10. select empno , ename, deptno ,
  11. case
  12. when deptno=10 then '总经办'
  13. when deptno=20 then '综管部'
  14. when deptno=30 then '市场部'
  15. else '其他'
  16. end
  17. from emp;

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

plsql中语法1:

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

plsql中语法2:

  1. case
  2. when 表达式 then 执行语句...;
  3. [when 表达式 then 执行语句...;]
  4. [else 执行语句... ;]
  5. end case;

PLSQL中的case可用于分支判断并<返回>,也可以用于分支判断<执行>

用case判断,并把返回值赋给某变量


  1. declare
  2. v_dname varchar(20);
  3. v_deptno int:=10;
  4. begin
  5. v_dname :=
  6. case v_deptno
  7. when 10 then '总经办' --返回值不要分号
  8. when 20 then '综管部'
  9. when 30 then '市场部'
  10. else '其他'
  11. end; --case结束时只用end
  12. dbms_output.put_line(v_dname);
  13. end;
  14. declare
  15. v_dname varchar(20);
  16. v_deptno int:=10;
  17. begin
  18. v_dname :=
  19. case
  20. when v_deptno=10 then '总经办'
  21. when v_deptno=20 then '综管部'
  22. when v_deptno=30 then '市场部'
  23. else '其他'
  24. end;
  25. dbms_output.put_line(v_dname);
  26. end;

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

  1. declare
  2. v_dname varchar(20);
  3. v_deptno int:=10;
  4. begin
  5. case v_deptno
  6. when 10 then v_dname:='总经办'; --分支判断中执行,分号结束
  7. when 20 then v_dname:='综管部';
  8. when 30 then v_dname:='市场部';
  9. else v_dname:='其他';
  10. end case; -- case结束时要end case
  11. dbms_output.put_line(v_dname);
  12. end;
  13. declare
  14. v_dname varchar(20);
  15. v_deptno int:=10;
  16. begin
  17. case
  18. when v_deptno=10 then v_dname:='总经办';
  19. when v_deptno=20 then v_dname:='综管部';
  20. when v_deptno=30 then v_dname:='市场部';
  21. else v_dname:='其他';
  22. end case;
  23. dbms_output.put_line(v_dname);
  24. end;

有待完善….

PL/SQL与SQL(Oracle)Case语句的更多相关文章

  1. SQL中IF和CASE语句

    IF表达式 IF(A,B,C): 如果 A 是TRUE (A <> 0 and A<> NULL),则 IF()的返回值为B; 否则返回值则为 C.IF() 的返回值为数字值或 ...

  2. SQL中的IF ELSE(CASE语句的使用)(转载)

    大家对IF ELSE语句可能都很熟悉,它是用来对过程进行控制的.在SQL的世界中CASE语句语句有类似的效果.下面简单的介绍CASE语句的用法.考虑下面的情况,假设有个user表,定义如下: CREA ...

  3. SQL中的IF ELSE(CASE语句的使用)

    大家对IF ELSE语句可能都很熟悉,它是用来对过程进行控制的.在SQL的世界中CASE语句语句有类似的效果.下面简单的介绍CASE语句的用法.考虑下面的情况,假设有个user表,定义如下: CREA ...

  4. ORACLE PL/SQL 实例精解之第五章 条件控制:CASE语句

    5.1 CASE语句 1. CASE语句具有如下结构 CASE SELECTOR WHEN EXPRESSION 1 THEN STATEMENT 1; WHEN EXPRESSSION 2 THEN ...

  5. Oracle笔记 八、PL/SQL跳转/判断/循环语句块

    --goto跳转语句 --在goto 后,跳转到相应的语句,然后执行该语句和后面所有语句 begin dbms_output.put_line('goto开始了'); goto c; --不被执行 d ...

  6. PL/SQL语句块提高1+case语句

    set serveroutput on; declare --默认值的bianliang v_a ; -- v_b integer; --用stud.id 的类型 v_id stud.id%type; ...

  7. SQL CASE语句的使用

    SQL CASE语句的使用 CASE是一个控制流语句,其作用与IF-THEN-ELSE语句非常相似,可根据数据选择值. CASE语句遍历条件并在满足第一个条件时返回值. 因此,一旦条件成立,它将短路, ...

  8. PL/SQL客户端中执行insert语句,插入中文乱码

    问题描述:在PL/SQL客户端中执行insert语句,插入中文乱码 解决方案: 1.执行脚本 select userenv('language') from dual;    结果为AMERICAN_ ...

  9. 不安装Oracle客户端使用PL/SQL连接服务器端Oracle

    从10G开始,Oracle 提供了一个较为轻量级的客户包,叫做Instant Client Package. 将它安装好后,就不用再安装庞大的Oracle客户端,可以直接通过使用PL/SQL连接服务器 ...

随机推荐

  1. LeetCode Number of Longest Increasing Subsequence

    原题链接在这里:https://leetcode.com/problems/number-of-longest-increasing-subsequence/description/ 题目: Give ...

  2. C#:使用UPnP来穿透NAT使内网接口对外网可见

    在写完Object 672后,软件的一个致命问题暴露出来,如果服务器和客户端都在内网环境下,即双方都通过NAT来接触外网,那么此时客户端是无法直接和服务器交流的. 解决方案可以是: 1:把服务器部署在 ...

  3. CodeForces 620E:New Year Tree(dfs序+线段树)

    E. New Year Treetime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputout ...

  4. bash姿势-没有管道符执行结果相同于管道符

    听起来比较别口: 直接看代码: shell如下: [root@sevck_linux ~]# </etc/passwd grep root root:x:::root:/root:/bin/ba ...

  5. Python类(六)-静态方法、类方法、属性方法

    静态方法 通过@staticmethod来定义,静态方法在类中,但在静态方法里访问不了类和实例中的属性,但静态方法需要类来调用 # -*- coding:utf-8 -*- __author__ = ...

  6. 2015.3.12Arinc424 Tools中SiniArincCls.csParserFile(string sFile)函数正则表达式理解

    原文: string RegEx1 = @"(\[ITEM\]\s*=[\S\s]*?(?=\[ITEM\])|\[ITEM\]\s*=[\S\s]*)";//用来识别主记录和后续 ...

  7. 第五章 Java中锁

    Lock接口 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源,比如读写锁).在Lock接口出现之前,Java程序 ...

  8. java 多线程系列---JUC原子类(一)之框架

    根据修改的数据类型,可以将JUC包中的原子操作类可以分为4类. 1. 基本类型: AtomicInteger, AtomicLong, AtomicBoolean ;2. 数组类型: AtomicIn ...

  9. 问题:System.Guid.NewGuid();结果:C# System.Guid.NewGuid()

    C# System.Guid.NewGuid() 概念 GUID: 即Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique I ...

  10. Composite模式 组合模式

    Android的ViewGroup 和 View 的关系,即是采用组合模式 1. 概述 在数据结构里面,树结构是很重要,我们可以把树的结构应用到设计模式里面. 例子1:就是多级树形菜单. 例子2:文件 ...