1.行转列

(1)decode实现

SELECT t_year,
MAX(DECODE(t_month,'1月',t_value)) AS 一月,
MAX(DECODE(t_month,'2月',t_value)) AS 二月,
MAX(DECODE(t_month,'3月',t_value)) AS 三月,
MAX(DECODE(t_month,'4月',t_value)) AS 四月
FROM a_testtable WHERE t_month IN('1月','2月','3月','4月')
GROUP BY t_year;

 (2)case when实现

SELECT t_year,
MAX(CASE t_month WHEN '1月' THEN t_value END) AS 一月,
MAX(CASE t_month WHEN '2月' THEN t_value END) AS 二月,
MAX(CASE t_month WHEN '3月' THEN t_value END) AS 三月,
MAX(CASE t_month WHEN '4月' THEN t_value END) AS 四月
FROM a_testtable WHERE t_month IN('1月','2月','3月','4月')
GROUP BY t_year;

(3)pivot函数

SELECT * FROM a_testtable
PIVOT(SUM(t_value) FOR t_month IN('1月' AS 一月,'2月' AS 二月,'3月' AS 三月,'4月' AS 四月));

SELECT * FROM 
(SELECT t_year AS ye,t_month AS mon,t_value AS val FROM a_testtable) a 
PIVOT(SUM(val) FOR mon IN('1月' AS 一月,'2月' AS 二月,'3月' AS 三月,'4月' AS 四月));

 2列转行

准备表及数据

(1)decode实现

SELECT t_year,
DECODE(lvl,1,'1月',2,'2月',3,'3月',4,'4月') AS t_month,
DECODE(lvl,1,one_m,2,two_m,3,tree_m,4,four_m) AS t_qty
FROM b_testtable,(SELECT LEVEL lvl FROM dual CONNECT BY LEVEL<=4)
ORDER BY t_year,t_month;

(2)case when实现

SELECT t_year,
CASE lvl WHEN 1 THEN '1月' 
    WHEN 2 THEN '2月' 
    WHEN 3 THEN '3月' 
    WHEN 4 THEN '4月' 
END AS t_month,
CASE lvl WHEN 1 THEN one_m 
    WHEN 2 THEN two_m 
    WHEN 3 THEN tree_m 
    WHEN 4 THEN four_m 
END AS t_qty
FROM b_testtable,(SELECT LEVEL lvl FROM dual CONNECT BY LEVEL<=4)
ORDER BY t_year,t_month;

(3)unpivot函数实现

SELECT * FROM b_testtable
UNPIVOT(t_qty FOR t_month IN(one_m AS '1月',two_m AS '2月',tree_m AS '3月',four_m AS '4月'))
ORDER BY t_year,t_month;

oracle行转列、列转行总结相关推荐

  1. SQL 行转列 列转行 Oracle转置函数函数pivot、unpivot 解决wm_concat 没有排序

    https://www.cnblogs.com/mellowsmile/p/4642306.html HH 终风且暴,顾我则笑,谑浪笑敖,中心是悼. 终风且霾,惠然肯来,莫往莫来,悠悠我思. 博客园 ...

  2. ORACLE行转列和列转行

    文章目录 ORACLE行转列和列转行 定义 ORACLE-行转列-unpivot 数据准备 行转列使用 ORACLE-列转行-pivot 数据准备 列转行使用 ORACLE行转列和列转行 定义 行转列 ...

  3. oracle列转行 空行,Oracle 行转列(不固定行数的行转列,动态)(转)

    SQLSERVER :行列转换例子:  http://www.cnblogs.com/gaizai/p/3753296.html#_labelFour 1. Oracle 11g之后新增了行列转换的函 ...

  4. oracle 行转列的sql,Oracle行转列、列转行的Sql语句总结

    目录结构如下: 行转列 列转行 [一].行转列 1.1.初始测试数据 表结构:TEST_TB_GRADE sql代码 create table TEST_TB_GRADE ( ID NUMBER(10 ...

  5. Oracle 多行变一列的方法

    多行变一列的方法有很多,觉得这个第一眼看懂了当时就用的这个办法. 情况是这样的.以下数据前几列是一样的,需要把VAT_VALUE_CHAR 的值放在同一行上. SELECT * FROM ps_vat ...

  6. oracle 行转列后列名,Oracle 多行转多列,列值转为列名

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

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

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

  8. SQL Server 行转列,列转行。多行转成一列

    一.多行转成一列(并以","隔开) 表名:A 表数据: 想要的查询结果: 查询语句: SELECT name ,value = ( STUFF(( SELECT ',' + val ...

  9. sqlserver中某列转成以逗号连接的字符串及逆转、数据行转列列转行

    Sql Server 列转逗号隔开的字符串 和 逆转 https://www.cnblogs.com/duanyuerui/p/7567692.html Sql server 中将数据行转列列转行(一 ...

  10. oracle行转列处理方法,oracle行转列解决办法

    oracle行转列 Cust prod 1       A 1       B 1       C 2       A 2       B Return Cust     Prod1     Prod ...

最新文章

  1. Webbrowers控件的小技巧
  2. 单臂路由配置实验同一交换机上vlan间ping不通_【干货】什么是单臂路由?如何配置?...
  3. Java标签移动_如何使用基于鼠标单击的标签移动特定游戏对象?
  4. ENSP配置 实例四 默认路由配置
  5. 03 ansible核心模块 之 文件类型模块
  6. Java8新特性总结 - 4.方法引用
  7. YApi--使用YApi的目的
  8. php探针存在xss漏洞
  9. 3.6 tensorflow 中LSTM和GRU模块使用意境级讲解
  10. pythonurllib爬虫教学_python爬虫基础教程:urllib库(一)
  11. 基于MHSS的ARAIM算法的详细分析解释
  12. 计算机科学与技术专业宣传口号,十大经典深入人心科技类广告语
  13. [书籍翻译]12周撰写期刊文章 学术出版成功指南——第 1 周:设计写作计划
  14. 看了这些 Go2 错误处理的提案,我真的会谢
  15. 创建个人博客只需五步骤——小白都能看会的详细过程,教你如何白嫖阿里云服务器
  16. 直播视频流+html,前端页面播放 rtmp 流与 flv 格式视频文件
  17. KITTI数据集详解和评价标准
  18. 511遇见易语言流程控制变量循环首
  19. avi怎么转换为mp4格式?
  20. 深入浅出Pytorch函数——torch.arange

热门文章

  1. 在线caj转换成pdf文件的操作方法
  2. Javascript如何修改数组长度?
  3. excel制作可模糊匹配的下拉框
  4. VBA(9)合并与拆分工作本/表
  5. python爬取交通违法记录查询_如何查询已交罚款的交通违法记录
  6. 浅谈机器学习框架和算法
  7. android 禁用手机自带的返回键
  8. 毕节计算机职高学校,贵州省省毕节有哪些职高学校
  9. 3种JavaScript 对象转数组的方法
  10. Pycharm激活码 最新的