Oracle列转行_unpivot

在实际业务开发环境中,我们经常会遇到要对查询的数据集进行列转行的需求。那么Oracle是如何实现的呢?本文也将通过几个实例来详细讲解一下。

Oracle列转行

Oracle列转行就是把一行当中的列的字段按照行的唯一值转换成多行数据。 比如上文Oracle行转列中的学生成绩表的基础数据是一个学生的一个科目成绩对应着是一条记录。然后我们进行了行转列后变成一个学生对应着每列(数学、英语、语文)科目的成绩是一条记录。那么本文就是要把之前转换后的学生成绩表(备份表score_copy)再次进行列转行,转换为原始数据。案例数据如下:

那我们要如何实现列转行呢?下面介绍两种常用的方法:

1、利用union all 进行拼接,可以完美的把对应的列转为行记录,具体代码如下:select t.stuname, '英语' as coursename ,t.英语 as score  from SCORE_COPY t

union all

select t.stuname, '数学' as coursename ,t.数学 as score  from SCORE_COPY t

union all

select t.stuname, '语文' as coursename ,t.语文 as score  from SCORE_COPY t

结果如下:

2、利用Oracle自带的列转行函数unpivot也可以完美解决该问题,具体语法结构如下:select 字段 from 数据集

unpivot(自定义列名/*列的值*/ for 自定义列名 in(列名))

实现代码如下:select stuname, coursename ,score from

score_copy  t

unpivot

(score for coursename in (英语,数学,语文))

结果如下:

unpivot行转列 oracle,Oracle列转行_unpivot相关推荐

  1. oracle unpivot 索引_Oracle 行转列pivot 、列转行unpivot 的Sql语句总结

    这个比较简单,用||或concat函数可以实现 select concat(id,username) str from app_user select id||username str from ap ...

  2. Oracle 行转列pivot 、列转行unpivot 的Sql语句总结

    多行转字符串 这个比较简单,用||或concat函数可以实现 [sql] view plaincopy print? select concat(id,username) str from app_u ...

  3. unpivot用法 oracle10g,Oracle 行转列pivot 、列转行unpivot 的Sql语句总结(转)

    多行转字符串 这个比较简单,用||或concat函数可以实现 1 select concat(id,username) str from app_user 2 3 select id||usernam ...

  4. Oracle的列转行问题

    Oracle的列转行问题 Oracle中使用语句将行数据转换称不同的列表示,或者将不同的列数据写到同一列的不同行上的行列转换问题是一个非常传统的话题. 网络上流传了很多将行数据转换称列数据的方法和应用 ...

  5. oracle列转行用逗号隔开,Oracle逗号分隔列转行实现方法

    Oracle逗号分隔列转行实现方法 那么,现在如果给出一个权限编号,要去检索出用后这个权限的用户集合,就会需要在逗号分隔的多个权限编号中去匹配给出的这个权限编号.如果使用like去做,一则效率不高,二 ...

  6. oracle一列多行转一行多列表示,Oracle 多行转多列,列值转为列名

    前段时间做调查问卷,客户创建自定义问卷内容,包括题目和选项内容; 之后需要导出问卷明细,,,,麻烦来咯 于是到网上到处搜索,没有直接结果;于是又找各种相似的,,终于功夫不负有心人 然后最终自己写出来了 ...

  7. oracle pivot 列转行,Oracle 列转行函数pivot

    作为数据库应用开发人员,我们有很大的精力应付在处理各种各样的数据类型,展现各种维度的报表上面. [url=]行转列[/url].列转行是我们经常会遇到的"诡异"需求.标准SQL没有 ...

  8. 设置oracle每行显示字符个数,Oracle一列的多行数据拼成一行显示字符-Oracle

    Oracle一列的多行数据拼成一行显示字符 oracle 提供了两个函数WMSYS.WM_CONCAT 和 ListAgg函数. www.2cto.com 先介绍:WMSYS.WM_CONCAT 例: ...

  9. oracle分组后伪列,Oracle伪列和伪表和分组函数(row_number,Rank)

    oracle的伪列以及伪表 oracle系统为了实现完整的关系数据库功能,系统专门提供了一组成为伪列(Pseudocolumn)的数据库列,这些列不是在建立对象时由我们完成的,而是在我们建立时由Ora ...

最新文章

  1. BZOJ 1176: [Balkan2007]Mokia( CDQ分治 + 树状数组 )
  2. Python加lxml实现图片解析下载功能
  3. mysql自动从另外表取数_你在 Docker 中跑 MySQL?恭喜你,好下岗了!
  4. 使用批处理查看.class文件内容--javap指令
  5. Flutter 异常处理之图片篇
  6. (四)Neo4j删除数据需要注意的问题
  7. 计算机硬盘中病毒以后怎么办,计算机中病毒,格式化整个硬盘后还有?怎么办?...
  8. C#.NET验证码智能识别学习笔记---05C#.Net图片预处理
  9. 爱可生 mysql监控_MySQL 数据传输DTLE 最新版来啦-爱可生
  10. 【iOS】Swift3:context.executeFecthRequest(request, error: nil)
  11. WordPress资源站点推荐
  12. 软件工程论文注意事项
  13. Android适配64位TBS X5内核
  14. 如何下载谷歌地球高程为TIF格式的文件
  15. 管理者要做木匠,不要做医生”。木匠眼里,没有废料,每一块木材都有它的作用;而在医生眼里,没有完全健康的人,每个人都是病人
  16. 重建同义词+oracle,Oracle中创建,删除同义词 Synonym
  17. Python 自动化办公之自动识别并点击按钮
  18. 糟糕之至的用户体验——JavaEye你怎么就这么贱!
  19. LeetCode热门100之 无重复字符的最长子串
  20. [我教你学]四步解决微软鼠标单击变双击问题

热门文章

  1. 【模块三:职业成长】36|能力维度一:如何提升结构化设计的能力?
  2. 苹果ipad有哪几款_苹果官宣11月第三波发布会,MAC电脑是亮点
  3. Ubuntu root无密码登录
  4. Oracle 端口被占用无法启动问题解决思路
  5. 数据库oceanbase出现 field list ambiguously defined情况
  6. Mac 电脑需不需要每天关机?
  7. VUE项目里返回按钮的处理(各个分页有返回按钮,首页没有)
  8. element 封装上传图片,上传头像组件
  9. Android点击一次按钮,布局显示,第二次点击,布局消失;点一次出现,再点一次消失逻辑。
  10. 对PDF进行数字签名,生成可信的文档