oracle pivot

2024-09-01 16:08
文章标签 oracle pivot

本文主要是介绍oracle pivot,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

语法:

Select * From 表名-- 这个表应该是下面聚合之后的表,而不是原理的行表
PIVOT
(
  SUM('要合并的列1'),MAX('要合并的列2'),.... --操作的列

FOR

 将值转换成列的列名 IN
(列值1,列值2,列值3,列值4....)
)

示例:

with t as (
Select '桃子' name, 300 nums ,1 jidu from dual
Union
Select '苹果' name, 200 nums ,1 jidu from dual
Union
Select '西瓜' name, 100 nums ,1 jidu from dual
Union
Select '桃子' name, 111 nums ,2 jidu from dual
Union
Select '西瓜' name, 222 nums ,2 jidu from dual
Union
Select '苹果' name, 333 nums ,2 jidu from dual
)

--select * from t pivot(sum(nums) for name in ('桃子','西瓜','苹果')) order by jidu; --这样只能全部显示出来,不能达到聚合的目的

select * from (select name, nums from t) pivot (max(nums) for name in ('桃子','西瓜','苹果'));

结果:

例子是从别人那里找到的,但是并不能达到目的。后来又研究了一下。

 

列转行:

with x as {
 
select 1 id ,'苹果' name ,1000 p1,2000 p2 ,3300 p3 ,5000 p4 from dual
union
 select 2 id ,'橘子' name ,1000 p1,2000 p2 ,3300 p3 ,5000 p4 from dual
union
 select 3 id ,'香蕉' name ,1000 p1,2000 p2 ,3300 p3 ,5000 p4 from dual
union
 select 4 id ,'葡萄' name ,1000 p1,2000 p2 ,3300 p3 ,5000 p4 from dual
}

select id , name, jidu, num  from x unpivot (xiaoshou for num  in (q1, q2, q3, q4) )。

没有找到语法,估计是

select id(已经存在的),name(已经存在的),jidu(新加的列名,和后面的for有关,in内值的标题成为值), num (新加的列名, in后值的列名)

这篇关于oracle pivot的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1127408

相关文章

Oracle修改端口号之后无法启动的解决方案

《Oracle修改端口号之后无法启动的解决方案》Oracle数据库更改端口后出现监听器无法启动的问题确实较为常见,但并非必然发生,这一问题通常源于​​配置错误或环境冲突​​,而非端口修改本身,以下是系... 目录一、问题根源分析​​​二、保姆级解决方案​​​​步骤1:修正监听器配置文件 (listener.

SQL Server中的PIVOT与UNPIVOT用法具体示例详解

《SQLServer中的PIVOT与UNPIVOT用法具体示例详解》这篇文章主要给大家介绍了关于SQLServer中的PIVOT与UNPIVOT用法的具体示例,SQLServer中PIVOT和U... 目录引言一、PIVOT:将行转换为列核心作用语法结构实战示例二、UNPIVOT:将列编程转换为行核心作用语

Oracle 通过 ROWID 批量更新表的方法

《Oracle通过ROWID批量更新表的方法》在Oracle数据库中,使用ROWID进行批量更新是一种高效的更新方法,因为它直接定位到物理行位置,避免了通过索引查找的开销,下面给大家介绍Orac... 目录oracle 通过 ROWID 批量更新表ROWID 基本概念性能优化建议性能UoTrFPH优化建议注

PostgreSQL 序列(Sequence) 与 Oracle 序列对比差异分析

《PostgreSQL序列(Sequence)与Oracle序列对比差异分析》PostgreSQL和Oracle都提供了序列(Sequence)功能,但在实现细节和使用方式上存在一些重要差异,... 目录PostgreSQL 序列(Sequence) 与 oracle 序列对比一 基本语法对比1.1 创建序

Pandas透视表(Pivot Table)的具体使用

《Pandas透视表(PivotTable)的具体使用》透视表用于在数据分析和处理过程中进行数据重塑和汇总,本文就来介绍一下Pandas透视表(PivotTable)的具体使用,感兴趣的可以了解一下... 目录前言什么是透视表?使用步骤1. 引入必要的库2. 读取数据3. 创建透视表4. 查看透视表总结前言

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

Oracle存储过程里操作BLOB的字节数据的办法

《Oracle存储过程里操作BLOB的字节数据的办法》该篇文章介绍了如何在Oracle存储过程中操作BLOB的字节数据,作者研究了如何获取BLOB的字节长度、如何使用DBMS_LOB包进行BLOB操作... 目录一、缘由二、办法2.1 基本操作2.2 DBMS_LOB包2.3 字节级操作与RAW数据类型2.

查看Oracle数据库中UNDO表空间的使用情况(最新推荐)

《查看Oracle数据库中UNDO表空间的使用情况(最新推荐)》Oracle数据库中查看UNDO表空间使用情况的4种方法:DBA_TABLESPACES和DBA_DATA_FILES提供基本信息,V$... 目录1. 通过 DBjavascriptA_TABLESPACES 和 DBA_DATA_FILES

Oracle登录时忘记用户名或密码该如何解决

《Oracle登录时忘记用户名或密码该如何解决》:本文主要介绍如何在Oracle12c中忘记用户名和密码时找回或重置用户账户信息,文中通过代码介绍的非常详细,对同样遇到这个问题的同学具有一定的参... 目录一、忘记账户:二、忘记密码:三、详细情况情况 1:1.1. 登录到数据库1.2. 查看当前用户信息1.

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行