首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

ORACLE CASE WHEN 惯用1

2012-08-02 
ORACLE CASE WHEN 常用11. 数据表:DROP SEQUENCE student_sequenceCREATE SEQUENCE student_sequenceSTAR

ORACLE CASE WHEN 常用1

1. 数据表:

DROP SEQUENCE student_sequence;CREATE SEQUENCE student_sequence  START WITH 10000  INCREMENT BY 1;DROP TABLE students;CREATE TABLE students (  id               NUMBER(5) PRIMARY KEY,  first_name       VARCHAR2(20),  last_name        VARCHAR2(20),  major            VARCHAR2(30),  current_credits  NUMBER(3),  grade     varchar2(2));INSERT INTO students (id, first_name, last_name, major, current_credits,grade)  VALUES (student_sequence.NEXTVAL, 'Scott', 'Smith', 'Computer Science', 98,null);INSERT INTO students (id, first_name, last_name, major, current_credits,grade)  VALUES (student_sequence.NEXTVAL, 'Margaret', 'Mason', 'History', 88,null);INSERT INTO students (id, first_name, last_name, major, current_credits,grade)  VALUES (student_sequence.NEXTVAL, 'Joanne', 'Junebug', 'Computer Science', 75,null);INSERT INTO students (id, first_name, last_name, major, current_credits,grade)  VALUES (student_sequence.NEXTVAL, 'Manish', 'Murgratroid', 'Economics', 66,null);commit;

?

2. CASE使用:

update students
set grade = (
select grade from
(
select id,
case when current_credits > 90 then 'a'
???? when current_credits > 80 then 'b'
???? when current_credits > 70 then 'c'
else 'd' end grade
from students
) a
where a.id = students.id
)

?

注:此文章转自http://www.eygle.com/archives/2005/10/oracle_howto_user_case_function.html

?

?

附加:

1、以CASE开头,以END结尾

  2、分支中WHEN 后跟条件,THEN为显示结果

  3、ELSE 为除此之外的默认情况,类似于高级语言程序中switch case的default,可以不加

  4、END 后跟别名

?

?

------------工作记录 尹当

热点排行