1.创建表
Create Table temp
(
num varchar2(15 Char),
name varchar2(20 Char),
sex varchar2(2 Char),
classes varchar2(30 Char),
course_name varchar2(50 Char)
)
2.插入数据
insert into temp(num,name,sex,classes,course_name) values ('206211','王艺','男','06-1班','保险学');
insert into temp(num,name,sex,classes,course_name) values ('206212','肖薇','女','06-2','保险学');
insert into temp(num,name,sex,classes,course_name) values ('206212','肖薇','女','06-2','财务管理');
insert into temp(num,name,sex,classes,course_name) values ('206212','肖薇','女','06-2','财务会计');
insert into temp(num,name,sex,classes,course_name) values ('206213','陈雅诗','女','06-2','电子商务');
insert into temp(num,name,sex,classes,course_name) values ('206213','陈雅诗','女','06-2','公共经济学');
insert into temp(num,name,sex,classes,course_name) values ('206213','陈雅诗','女','06-2','公司理财');
insert into temp(num,name,sex,classes,course_name) values ('206213','陈雅诗','女','06-2','管理学原理');
insert into temp(num,name,sex,classes,course_name) values ('206213','陈雅诗','女','06-2','保险学');
insert into temp(num,name,sex,classes,course_name) values ('206214','李丹阳','男','06-1','保险学');
insert into temp(num,name,sex,classes,course_name) values ('206214','李丹阳','男','06-1','财务管理');
insert into temp(num,name,sex,classes,course_name) values ('206214','李丹阳','男','06-1','财务会计');
insert into temp(num,name,sex,classes,course_name) values ('206214','李丹阳','男','06-1','电子商务');
insert into temp(num,name,sex,classes,course_name) values ('206214','李丹阳','男','06-1','公共经济学');
insert into temp(num,name,sex,classes,course_name) values ('206215','杨伊琳','女','06-3班','环境管理学');
insert into temp(num,name,sex,classes,course_name) values ('206215','杨伊琳','女','06-3班','管理学原理');
insert into temp(num,name,sex,classes,course_name) values ('206215','杨伊琳','女','06-3班','商务谈判');
insert into temp(num,name,sex,classes,course_name) values ('206216','李佳琪','男','06-2','土地估计');
Commit;
3.查询
select num, name, sex, classes,
max(decode(rn, 1, course_name, null)) course_name_1,
max(decode(rn, 2, course_name, null)) course_name_2,
max(decode(rn, 3, course_name, null)) course_name_3,
max(decode(rn, 4, course_name, null)) course_name_4,
max(decode(rn, 5, course_name, null)) course_name_5
from (select num, name, sex, classes, course_name,
row_number() over(partition by num, name, sex, classes order by course_name) rn from temp)
group by num, name, sex, classes;
4.结果
- 大小: 53 KB
分享到:
相关推荐
oracle行转列
oracle 行转列的sql语句写法, 附带例子
Oracle行转列
oracle行转列_列转行,实例加解析,自己测试没问题。免费分享了~
oracle数据库最详细的行转列资料,是官方文档的详细介绍版,中文的
NULL 博文链接:https://13966692733-163-com.iteye.com/blog/1192434
NULL 博文链接:https://vernonchen163.iteye.com/blog/1902976
数据库查询中难免会遇到行列转换的情况,摘列一些较精典的解决方案
行转列函数,对于学习sql查询的朋友们,可能会遇到这样的要求,此文档中做了详细记载,希望可以帮到你!
用存储过程写的动态行转列。简单易用,查询速度高效
许多情况下,由于程序中需要将行转为列展示,如果使用ORACLE那么这个资源适合你。
关于oracle数据库如何行转列SQL语句。
oracle实现行转列功能,并使用逗号进行隔开拼接,成为一条数据.pdf
SQL行转列问题,有实例,根据具体实例讲解,清晰易懂。 希望对你有帮助!
理解日常工作中常用到的多列分组, 如【统计不同部门、 不同职位的平均工资】和 行转列 包含例子 和 个人理解分析
Oracle中使用语句将行数据转换称不同的列表示,或者将不同的列数据写到同一列的不同行上的行列转换问题是一个非常传统的话题。 网络上流传了很多将行数据转换称列数据的方法和应用实例,一般通过decode或者case函数...
oracle知识列点 一个简单的行列转换例子,需要的可以看下