码迷,mamicode.com
首页 > 数据库 > 详细

Oracle unpivot列转行函数 pivot行转列函数

时间:2021-05-24 08:27:14      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:tun   需要   dmi   bsp   type   stat   定义   and   group   

unpivot列转行函数

select 字段 from 数据集
unpivot(自定义列名/*列的值*/ for 自定义列名/*列名的别名,自己定义*/ in(列名))

注意 後面的是列名


比如 

   	DATEGP	CLASS_NAME	CLASS_CODE	GROUP_ADMIN	ISTYPE_CODE	ISINDATE	ISFIT	ISC
1	202105	制五課	5	苗越峰	0	0	0	0
2	202105	制五課	5	苗越峰	1	1	1	1
3	202105	制五課	5	苗越峰	0	0	0	0
4	202105	制五課	5	苗越峰	0	0	0	0
5	202105	制五課	5	苗越峰	0	0	0	0


列转行后

UNPIVOT(STATE_COUNTS FOR STATE_CODE IN(ISTYPE_CODE,
                                                                                                  ISINDATE,
                                                                                                  ISFIT))

   	DATEGP	CLASS_NAME	CLASS_CODE	GROUP_ADMIN	STATE_CODE	STATE_COUNTS
1	202105	制五課	5	苗越峰	ISTYPE_CODE	0
2	202105	制五課	5	苗越峰	ISINDATE	0
3	202105	制五課	5	苗越峰	ISFIT	0
4	202105	制五課	5	苗越峰	ISTYPE_CODE	1
5	202105	制五課	5	苗越峰	ISINDATE	1
6	202105	制五課	5	苗越峰	ISFIT	1

   pivot行转列函数

select * from  (select c.stuname,
       b.coursename,
       t.score
  from STUDENT.SCORE t, student.course b, student.stuinfo c
 where t.courseid = b.courseid
   and t.stuid = c.stuid )  /*数据源*/
PIVOT 
(
 SUM(score/*行转列后 列的值*/) 
 FOR coursename/*需要行转列的列*/ IN (‘英语(2018上学期)‘ as 英语,‘数学(2018上学期)‘ as 数学,‘语文(2018上学期)‘ as 语文 )
) ;

  

Oracle unpivot列转行函数 pivot行转列函数

标签:tun   需要   dmi   bsp   type   stat   定义   and   group   

原文地址:https://www.cnblogs.com/JerryZhang320/p/14766428.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!