日期:2014-05-16 浏览次数:20432 次
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 后跟别名
?
?
------------工作记录 尹当