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

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

maynowei8个月前 (08-19)技术知识94

文中使用的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来展示也是可以的。

相关文章

Flutter 之 ListView(flutter框架)

在 Flutter 中,ListView 可以沿一个方向(垂直或水平方向)来排列其所有子 Widget,常被用于需要展示一组连续视图元素的场景ListView 构造方法ListView:仅适用于列表中...

Win10桌面/手机版最深层次开发功能挖掘

IT之家讯 Win10开发者预览版为我们提供了一个Win10大框架的早期概览,使开发者与热心用户都可以提前感受Win10带来的新特性,尝试新工具,而作为开发者,最关心的莫过于Windows多平台通用应...

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

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

Qt QWaitCondition 的正确使用方法

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

C++26中同步与原子操作新变化(c++ 同步)

引言随着多核处理器和并发编程的普及,C++26进一步增强了对同步与原子操作的支持,为开发者提供了更高效、更安全的工具来应对多线程编程中的数据竞争与同步挑战。自C++11引入原子操作以来,C++标准库在...

C语言编写多线程,什么时候要使用互斥锁?为什么要使用互斥锁?

在多线程编程中,当多个线程同时访问共享资源(如变量、文件等)时,会出现竞态条件(Race Condition)问题,导致程序的行为不可预测。为了避免这种问题,需要使用互斥锁来保护共享资源的访问。互斥锁...