oracle行转列、列转行总结
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行转列、列转行总结相关推荐
- SQL 行转列 列转行 Oracle转置函数函数pivot、unpivot 解决wm_concat 没有排序
https://www.cnblogs.com/mellowsmile/p/4642306.html HH 终风且暴,顾我则笑,谑浪笑敖,中心是悼. 终风且霾,惠然肯来,莫往莫来,悠悠我思. 博客园 ...
- ORACLE行转列和列转行
文章目录 ORACLE行转列和列转行 定义 ORACLE-行转列-unpivot 数据准备 行转列使用 ORACLE-列转行-pivot 数据准备 列转行使用 ORACLE行转列和列转行 定义 行转列 ...
- oracle列转行 空行,Oracle 行转列(不固定行数的行转列,动态)(转)
SQLSERVER :行列转换例子: http://www.cnblogs.com/gaizai/p/3753296.html#_labelFour 1. Oracle 11g之后新增了行列转换的函 ...
- oracle 行转列的sql,Oracle行转列、列转行的Sql语句总结
目录结构如下: 行转列 列转行 [一].行转列 1.1.初始测试数据 表结构:TEST_TB_GRADE sql代码 create table TEST_TB_GRADE ( ID NUMBER(10 ...
- Oracle 多行变一列的方法
多行变一列的方法有很多,觉得这个第一眼看懂了当时就用的这个办法. 情况是这样的.以下数据前几列是一样的,需要把VAT_VALUE_CHAR 的值放在同一行上. SELECT * FROM ps_vat ...
- oracle 行转列后列名,Oracle 多行转多列,列值转为列名
前段时间做调查问卷,客户创建自定义问卷内容,包括题目和选项内容; 之后需要导出问卷明细,,,,麻烦来咯 于是到网上到处搜索,没有直接结果;于是又找各种相似的,,终于功夫不负有心人 然后最终自己写出来了 ...
- oracle一列多行转一行多列表示,Oracle 多行转多列,列值转为列名
前段时间做调查问卷,客户创建自定义问卷内容,包括题目和选项内容; 之后需要导出问卷明细,,,,麻烦来咯 于是到网上到处搜索,没有直接结果;于是又找各种相似的,,终于功夫不负有心人 然后最终自己写出来了 ...
- SQL Server 行转列,列转行。多行转成一列
一.多行转成一列(并以","隔开) 表名:A 表数据: 想要的查询结果: 查询语句: SELECT name ,value = ( STUFF(( SELECT ',' + val ...
- sqlserver中某列转成以逗号连接的字符串及逆转、数据行转列列转行
Sql Server 列转逗号隔开的字符串 和 逆转 https://www.cnblogs.com/duanyuerui/p/7567692.html Sql server 中将数据行转列列转行(一 ...
- oracle行转列处理方法,oracle行转列解决办法
oracle行转列 Cust prod 1 A 1 B 1 C 2 A 2 B Return Cust Prod1 Prod ...
最新文章
- Webbrowers控件的小技巧
- 单臂路由配置实验同一交换机上vlan间ping不通_【干货】什么是单臂路由?如何配置?...
- Java标签移动_如何使用基于鼠标单击的标签移动特定游戏对象?
- ENSP配置 实例四 默认路由配置
- 03 ansible核心模块 之 文件类型模块
- Java8新特性总结 - 4.方法引用
- YApi--使用YApi的目的
- php探针存在xss漏洞
- 3.6 tensorflow 中LSTM和GRU模块使用意境级讲解
- pythonurllib爬虫教学_python爬虫基础教程:urllib库(一)
- 基于MHSS的ARAIM算法的详细分析解释
- 计算机科学与技术专业宣传口号,十大经典深入人心科技类广告语
- [书籍翻译]12周撰写期刊文章 学术出版成功指南——第 1 周:设计写作计划
- 看了这些 Go2 错误处理的提案,我真的会谢
- 创建个人博客只需五步骤——小白都能看会的详细过程,教你如何白嫖阿里云服务器
- 直播视频流+html,前端页面播放 rtmp 流与 flv 格式视频文件
- KITTI数据集详解和评价标准
- 511遇见易语言流程控制变量循环首
- avi怎么转换为mp4格式?
- 深入浅出Pytorch函数——torch.arange