当前位置:首页 > 技术知识 > 正文内容

【Oracle】数据报表字段排重显示_oracle表大小排序

maynowei10个月前 (08-19)技术知识124

文中使用的Oracle版本为11g。

一般来说关系型数据库的企业级应用中会存在表关联查询的场景,首当其冲的莫过于主表跟子表进行关联查询。在这种一对多关联查询中难免会出现主表中的某些字段数据重复出现的情况,如下图:

这是一个普通的关联查询,场景用于仓管员核对领用物资使用。从上图可以看出,主子表关联产生像SHEETNAME、SHEETNO这两个字段出现大量重复(这里的SheetName和SheetNo是用来导出Excel时用到的)。就上图这样的输出,若直接导出成Excel在数据量大的情况下很容易造成阅读混乱,所以要将这两个字段的重复内容进行合并。使用下面的SQL可以完成:

with xx as(
-- 正常的查询语句
)
select 
decode(rn, 1, 字段1) as 字段1,字段2
from ( select xx.*,row_number() over(partition by 字段 1 order by 字段2 ) rn from xx);

具体例子如下:

执行效果为:

相同的内容会被剔除,很清晰可以看出以SheetName和SheetNo分组的明细内容有哪些,导Excel只需要对空单元格进行单元格合并,或者直接按SheetName分成多个Sheet来展示也是可以的。

相关文章

一文弄懂 GO 的 互斥锁 Mutex !(互斥锁的使用方法)

在 Go 语言并发编程中,互斥锁(Mutex)是一个非常重要的同步原语。本文将深入介绍 Mutex 的使用方法、实现原理以及最佳实践。1. 什么是 Mutex?Mutex(互斥锁)是一种用于多线程编程...

打通 JAVA 与内核系列之 一 ReentrantLock 锁的实现原理

写JAVA代码的同学都知道,JAVA里的锁有两大类,一类是synchronized锁,一类是concurrent包里的锁(JUC锁)。其中synchronized锁是JAVA语言层面提供的能力,在此不...

Qt QWaitCondition 的正确使用方法

简单用法QWaitCondition 用于多线程的同步,一个线程调用QWaitCondition::wait() 阻塞等待,直到另一个线程调用QWaitCondition::wake() 唤醒才继续往...

大量类加载器创建导致诡异FullGC(类的加载器有什么用)

“ 由 GC 问题带你全面了解 JDK8 Metaspace”01—现象最近接手了一个同事的项目,某一天接口的响应耗时突然增加了很多,由几十ms 增加到了几十秒。首先查看机器上的日志,有调用第三方接口...

Navicat Premium 连接 Oracle 数据库

Navicat Premium是一个可多重连接的数据库管理工具,它可让你以单一程序同時连接到 MySQL、SQLite、Oracle 及 PostgreSQL 数据库,让管理不同类型的数据库更加方便。...

ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务

早上同事用PL/SQL连接虚拟机中的Oracle数据库,发现又报了“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”错误,帮其解决后,发现很多人遇到过这样的问题,因此写着这里。也...