Oracle查询中行显转列显的方法
有时候数据库存储的是一行行的数据,而显示的时候我们需要把他转化为一列数据, 比较常见的场景是,学生的考试成绩,员工的工资明细 这些都会存在一个表中,有很多行数据,但是最终展示的时候我们需要合并为一行数据 下面以学生成绩为例 Name Subject Result 试题一 : 通过查询指令输出以下数据 ----------------------------------------------------------------------------------------------------------------- 创建表: create table test( 向表中制造数据: select a.*,rowid from test a ; 查询的sql语句如下: 使用case when 语句对每门课进行分类,用人员来分组得到这个人的所有门科,同时可以求出总分和平均分 select username, max(case kemu when '语文' then fenshu else 0 end) 语文, max(case kemu when '数学' then fenshu else 0 end) 数学, max(case kemu when '英语' then fenshu else 0 end) 英语, cast(avg(fenshu*1.0) as decimal(18,2))平均分 from test group by username ; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |