oracle行转列sql怎么写?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle行转列sql怎么写?相关的知识,希望对你有一定的参考价值。

参考技术A 行转列的准则就是通过主键进行分组,之后对行其它字段加上sum()、max()、count()函数,里边用decode()这类函数进行处理,总之分组不要用到他就成。 参考技术B 统计数据一般需要行专列都是把原始数据用SQL写入临时表,第一行写入临时表第一个字段,第二行写入临时表第二个字段....,然后再从临时表查询已经转为列的数据。 参考技术C 可以使用SQL
提供的静态转置功能
pivot

unpivot,但是适用范围很受限,可以看下这种方式:
http://c.raqsoft.com.cn/article/1543902421790?r=ddszm

死磕:SQL行转列汇总(全网最全最详细)

参考技术A

阅读目录

PIVOT 用于将列值旋转为列名(即行转列),在 SQL Server 2000可以用聚合函数配合CASE语句实现

PIVOT 的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P

注意:PIVOT、UNPIVOT是SQL Server 2005 的语法,使用需修改数据库兼容级别(在数据库属性->选项->兼容级别改为 90 )

SQL2008 中可以直接使用

完整语法:

View Code

UNPIVOT 用于将列明转为列值(即列转行),在SQL Server 2000可以用UNION来实现

姓名 课程 分数

---------- ---------- -----------

张三 语文 74

张三 数学 83

张三 物理 93

李四 语文 74

李四 数学 84

李四 物理 94

姓名 语文 数学 物理

---------- ----------- ----------- -----------

李四 74 84 94

张三 74 83 93

姓名 语文 数学 物理 总分 平均分

---------- ----------- ----------- ----------- -----------

李四 74 84 94 252 84.00

张三 74 83 93 250 83.33

姓名 语文 数学 物理

---------- ----------- ----------- -----------

张三 74 83 93

李四 74 84 94

姓名 课程 分数

---------- ---- -----------

李四 语文 74

李四 数学 84

李四 物理 94

张三 语文 74

张三 数学 83

张三 物理 93

最后给大家分享Spring系列的学习笔记和面试题,包含spring面试题、spring cloud面试题、spring boot面试题、spring教程笔记、spring boot教程笔记、最新阿里巴巴开发手册(63页PDF总结)、2022年Java面试手册。一共整理了1184页PDF文档。私信博主(777)领取,祝大家更上一层楼!!!

原文作者:王思明

原文出处:http://www.cnblogs.com/maanshancss/

以上是关于oracle行转列sql怎么写?的主要内容,如果未能解决你的问题,请参考以下文章

关于sql行转列 字符拼接,求指导该怎么写

ORAClE sql如何实现行转列?

SQLSERVER有张表,需要每晚自动实现行转列。

sql语句行转列 怎么转啊

【求助】有关oracle 动态行转列

oracle 行转列 ,这个要怎么转