龙空技术网

【Oracle】数据报表字段排重显示

弹指一辉 14

前言:

此刻大家对“oracle 查询表中重复数据”都比较珍视,兄弟们都需要知道一些“oracle 查询表中重复数据”的相关文章。那么小编同时在网摘上搜集了一些有关“oracle 查询表中重复数据””的相关知识,希望姐妹们能喜欢,咱们快快来学习一下吧!

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

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

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

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

具体例子如下:

执行效果为:

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

标签: #oracle 查询表中重复数据