oracle ebs Oracle Case When

本文通过创建学生信息表并使用CASE函数动态分配成绩等级的例子,展示了CASE函数在SQL中的具体应用。通过对不同学分的学生给予相应的成绩等级,说明了CASE函数如何在实际业务场景中提高数据处理效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过实例简要介绍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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值