如何使用Oracle case函数
你知道如何使用Oracle case函数吗?相信很多小伙伴们对于Oracle case函数都不是非常的了解,那么我们接下来就跟爱站小编一起去看看关于使用Oracle case函数的方法吧。
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.查看相应数据
SQL> select * from students;
        ID FIRST_NAME           LAST_NAME            MAJOR                          CURRENT_CREDITS GR
---------- -------------------- -------------------- ------------------------------ --------------- --
     10000 Scott                Smith                Computer Science                            98
     10001 Margaret             Mason                History                                     88
     10002 Joanne               Junebug              Computer Science                            75
     10003 Manish               Murgratroid          Economics                                   66
3.更新语句
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
)
/
4.更新后结果
SQL> select * from students;
        ID FIRST_NAME           LAST_NAME            MAJOR                          CURRENT_CREDITS GR
---------- -------------------- -------------------- ------------------------------ --------------- --
     10000 Scott                Smith                Computer Science                            98 a
     10001 Margaret             Mason                History                                     88 b
     10002 Joanne               Junebug              Computer Science                            75 c
     10003 Manish               Murgratroid          Economics                                   66 d
看完后大家知道如何使用Oracle case函数了吗?人生就是一个不断学习的过程,在这个过程中爱站技术频道就是大家的帮手,我们看在爱站网学习到很多有趣的知识。
上一篇:oracle如何备份恢复
下一篇:oracle如何使用nvl函数
 
                    