数据库行列反转问题详解!

 时间:2024-10-24 20:12:11

1、创建一个用户表:脚本如下create table student( id number primary key, name varchar2(10), course varchar2(10), score number(4,2))

2、插入测试数据:脚本如下insert i艘绒庳焰nto student values(1,'张三','JAVA&垆杪屑丝#39;,90);insert into student values(2,'张三','C',95);insert into student values(3,'赵六','JAVA',85);insert into student values(4,'赵六','C',70);

3、查询表的数据显示效果如图:ID NAME COURSE SCORE--------------------------------------1 张三 JAVA 902 张三 C 953 赵六 JAVA 854 赵六 C 70

数据库行列反转问题详解!

4、方法一:使用如下语句查询:select name,sum(decode(course,'JAVA',score)) JAVA,sum(decode(course,'C',score)) Cfrom studentgroup by name;效果如下:NAME JAVA C--------------------张三 90 95赵六 85 70

数据库行列反转问题详解!

5、方法二:select name,sum(case when course='JAVA' then score else 0 end) as java,sum(case when course='C' then score else 0 end) as Cfrom studentgroup by name;效果同上

6、方法三:select t.name,sum(t.JAVA) java,sum(t.C) cfrom ( select name,case when course='JAVA' then score else 0 end java, case when course='C' then score else 0 end C from student) tgroup by name;效果同上

  • Tomcat监控-JConsole
  • 如何远程操作新装的AIX7.1
  • 自定义js文件
  • PLSQL Developer怎么设置不执行时保存
  • 一零告诉你如何在xftp图形化界面管理服务器
  • 热门搜索
    传染病手抄报 关于清明节手抄报图片 交通的手抄报 安全与健康手抄报内容 中华文化手抄报 绿色家园手抄报资料 传染病手抄报内容 安全方面的手抄报 关于春节手抄报的内容 家乡手抄报