pivot函数:行转列函数:
  语法:pivot(任一聚合函数 for 需专列的值所在列名 in (需转为列名的值));
unpivot函数:列转行函数:
  语法:unpivot(新增值所在列的列名 for 新增列转为行后所在列的列名 in (需转为行的列名));
执行原理:将pivot函数或unpivot函数接在查询结果集的后面。相当于对结果集进行处理。

转换示例:

1.原始表数据:
  sql语句:select * from T_PIVOT_TEST_1 ;

    

2.用pivot函数进行行转列。其中用聚合函数对数据列进行求值,将th列中的值’COL_1‘,’COL_2‘,‘COL_3’转化为列名,并为其加上别名。
  sql语句:select * from T_PIVOT_TEST_1
    pivot (sum(er) for th in ('COL_1' as 第一列,'COL_2'as 第二列 ,'COL_3' as 第三列));
转换后结果图:

    

3.用nupivot函数进行列转行。在原sql语句上再加上unpivot函数,将列再转为行,在unpivot函数中,aa与bb为新增的列名,分别表示由列转换为行后的数据所在的列名和数据所在的列名。
sql语句:select * from T_PIVOT_TEST_1
pivot (sum(er) for th in ('COL_1' as 第一列,'COL_2'as 第二列 ,'COL_3' as 第三列))
unpivot ( aa for bb in(第一列,第二列,第三列));
转换后结果图:

    

最新文章

  1. 4.在MVC中使用仓储模式进行增删查改
  2. 如何在Node.js中合并两个复杂对象
  3. servlet过滤器使用
  4. tomcat日志文件定时清理备份
  5. Ubuntu 16.10下的eclipse
  6. Lua 之数据结构
  7. 斯坦福第七课:正则化(Regularization)
  8. 【HDU 4602】Partition
  9. 初学java之try-catch-finally语句的实例
  10. 小课堂Week10 例外处理设计的逆袭Part3
  11. python中yield用法
  12. tomcat初识
  13. bzoj1293: [SCOI2009]生日礼物
  14. 如何快速正确的安装 Ruby, Rails 运行环境-b
  15. [Android] createTrack_l
  16. C语言解析日志,存储数据到伯克利DB 2
  17. 13、Java菜单条、菜单、菜单项
  18. HDU 2689 Sort it【树状数组】
  19. 卸载office密钥的命令
  20. SQL学习指南第四篇

热门文章

  1. Bzoj3105:[CQOI2013]新Nim游戏
  2. autocomplete 属性 清除input框输入存留历史值,防止下拉历史值显示
  3. Web前端面试指导(十九):CSS样式-如何清除元素浮动?
  4. mongoDB BI 分析利器 - PostgreSQL FDW (MongoDB Connector for BI)
  5. 是否应该开启WebView硬件加速?
  6. 使用C3的一些新属性绘制谷歌浏览器的图标
  7. python itchat 微信开发
  8. C++ 类对象的初始化顺序 ZZ
  9. ubuntu桌面便签 sticky note, xpad
  10. Improving cache consistency redis和db的一致性维护