『ORACLE』 PLSQL-case语句(11g)

语法:

CASE selector

WHEN exp1 then res1

WHEN exp2 then res2

WHEN exp3 then res3

...

[ELSE resN]

end;

SQL> declare
2 mygrade char(1):=‘A‘;
3 res varchar2(20);
4 begin
5 res :=
6 CASE mygrade
7 WHEN ‘A‘ THEN ‘The mark is 90-100‘
8 WHEN ‘B‘ THEN ‘The mark is 80-90‘
9 WHEN ‘C‘ THEN ‘The mark is 70-80‘
10 WHEN ‘D‘ THEN ‘The mark is 60-70‘
11 WHEN ‘E‘ THEN ‘The mark is 0-60‘
12 END;
13 dbms_output.put_line(res);
14 end;
15 /
The mark is 90-100

PL/SQL procedure successfully completed.

SQL> 2
2* mygrade char(1):=‘A‘;

SQL> ch /‘A‘/‘F‘/
2* mygrade char(1):=‘F‘;
SQL> l
1 declare
2 mygrade char(1):=‘F‘;
3 res varchar2(20);
4 begin
5 res :=
6 CASE mygrade
7 WHEN ‘A‘ THEN ‘The mark is 90-100‘
8 WHEN ‘B‘ THEN ‘The mark is 80-90‘
9 WHEN ‘C‘ THEN ‘The mark is 70-80‘
10 WHEN ‘D‘ THEN ‘The mark is 60-70‘
11 WHEN ‘E‘ THEN ‘The mark is 0-60‘
12 END;
13 dbms_output.put_line(res);
14* end;
SQL> /

PL/SQL procedure successfully completed.

SQL> declare
2 mygrade char(1):=‘F‘;
3 res varchar2(20);
4 begin
5 res :=
6 CASE mygrade
7 WHEN ‘A‘ THEN ‘The mark is 90-100‘
8 WHEN ‘B‘ THEN ‘The mark is 80-90‘
9 WHEN ‘C‘ THEN ‘The mark is 70-80‘
10 WHEN ‘D‘ THEN ‘The mark is 60-70‘
11 WHEN ‘E‘ THEN ‘The mark is 0-60‘
12 ELSE ‘The mark is null‘
13 END;
14 dbms_output.put_line(res);
15 end;
16 /
The mark is null

PL/SQL procedure successfully completed.

时间: 2024-10-12 23:41:08

『ORACLE』 PLSQL-case语句(11g)的相关文章

『ORACLE』 PLSQL游标的使用(11g)

游标分类 隐式游标: 对于select..into...语句,一次只能从数据库中获取到一条数据,对于这种类型的DML SQL语句,就是隐式cursor select update/insert/delete操作 显示游标: 由程序员定义和管理,对于从数据库中提取多行数据,就需要使用显式cursor 1.定义游标---cursor  [cursor name]  is 2.打开游标---open    [cursor name] 3.操作数据---fetch    [cursor name] 4.

『ORACLE』 PLSQL动态游标的使用(11g)

#静态游标指的是程序执行的时候不需要再去解析sql语言,对于sql语句的解析在编译的时候就可以完成的. 动态游标由于含有参数,对于sql语句的解析必须要等到参数确定的时候才能完成. 从这个角度来说,静态游标的效率也比动态游标更高一些. #游标的相关概念: 定义: 游标它是一个服务器端的存储区,这个区域提供给用户使用,在这个区域里 存储的是用户通过一个查询语句得到的结果集,用户通过控制这个游标区域当中 的指针 来提取游标中的数据,然后来进行操作. 实质: 是用户在远程客户端上对服务器内存区域的操作

『ORACLE』 PLSQL条件控制语句(11g)

简单条件判断语句 SQL> declare 2 myage number := 10; 3 begin 4 if myage < 11 then 5 dbms_output.put_line('I am a child'); 6 end if; 7 end; 8 / I am a child PL/SQL procedure successfully completed. SQL> 2 2* myage number := 10;SQL> ch /10/14 2* myage nu

『ORACLE』 PLSQL创建存储过程(11g)

不带参数的存储过程 SQL> create or replace procedure get_time is 2 begin 3 dbms_output.put_line(sysdate); 4 end; 5 / Procedure created. SQL> exec get_time; 15-MAY-17 PL/SQL procedure successfully completed. 带in参数的存储过程 SQL> create or replace procedure add_d

『ORACLE』 创建表(11g)

CREATE TABLE语句 create table [schema.] 表名 (column datatype [DEFAULT expr][, ...]); 在插入的过程中,为列指定一个默认值 ...hire_date DATE DEFAULT SYSDATE,... 默认值必须满足列的数据类型定义 create table hire_dates (id number(8),hire_date date default sysdate); create table dept (deptno

『ORACLE』 约束实验(11g)

create table student (   sno                  NUMBER(5)            not null,   sname                VARCHAR2(20),   idcard               VARCHAR2(18),   createtime           DATE                 default SYSDATE,   nno                  NUMBER(2),   co

『ORACLE』 SQL语句简单应用(五)(11g)

not null  非空  字段+not null unique  唯一 primary key  主键(确保数据不能重复) foreign key  外键 check  必须 drop purge彻底删除 级联删除:删除一个部门,部门里的员工跟着删除--->on delete cascade 制空:把部门下的员工转到NULL,删除部门--->on delete set null 不能动:先删员工,再删部门 references 参照 constraint 约束 用子查询创建的表除了null,

『ORACLE』 SQL语句简单应用(四)(11g)

排序 后加 nulls last 在降序排列中把null放在最后 select to_char(sysdate,'q') from dual; dual 伪表 公共同义词 因为它有一条记录 方便读取 select rownum,'a'||rownum,mod(rownum,2) from dual connect by rownum<=10; select rownum,to_date('2016-05-01','yyyy-mm-dd') from dual connect by rownum<

『ORACLE』 数据泵Data Pump中expdp导出(11g)

[[email protected] ~]$ mkdir datadump[[email protected] ~]$ cd datadump/[[email protected] datadump]$ pwd/home/oracle/datadump SQL> create or replace directory dir_dp as '/home/oracle/datadump'; Directory created. SQL> grant read,write on directory