oracle列转行 listagg
oracle 列转行listagg实现方式
当结果中只有要转化的那一列时候
select listagg(t.shopName, ',') within group(order by t.idCno)
from(select idCno, shopName from shop where idCno in (select p.idCno from shop p)
) t
group by t.idCno
注意:
后边一定要加group by, 不然实现不了
当结果中只有要转化的那两列时候
select t.idCno, listagg(t.shopName, ',') within group(order by t.idCno)
from(select idCno, shopName from shop where idCno in (select p.idCno from shop p)
) t
group by t.idCno
复杂点的逻辑应用
select l.userNo, l.userName, l.companyCom, l.manageCom,
l.oaCno, lmg.menuName, r.organize
from Users l
left join usersAndMenu ltm on l.userId = ltm.userId
left join MenuGroup lmg on ltm.MenuGroupId = lmg.MenuGroupId
left join MenuGroupAndMenu lmtm on lmg.MenuGroupId = lmtm.MenuGroupId
left join Menu lm on lm.MenuId = lmtm.menuId
left join (select t.parentId, listAgg(t.name, ',')within group(order by t.parentId) namefrom (select parentId, name from Menuwhere parentId in(select m.MenuId from Menu m)) t-- 此处group by 是列转行必须有,不然无法实现列转行group by t.parentId
) r on r.parentId = lm.menuId
-- 此处group by因为查出的数据有重复,需要去重
group by l.userNo, l.userName, l.companyCom, l.manageCom,
l.oaCno, lmg.menuName, r.organize
共同探讨学习技术创建技术氛围Day9884125
oracle列转行 listagg相关推荐
- Oracle 列转行函数 Listagg()
本文来源于:dacoolbaby 的 <Oracle 列转行函数 Listagg()> 这是一个Oracle的列转行函数:LISTAGG() 1 with temp as( 2 sel ...
- oracle列转行查询,Oracle列转行函数Listagg以及pivot查询示例
简单的Oracle列转行函数Listagg示例: CREATE TABLE tbl_test (catalog VARCHAR(1),product VARCHAR(2),amount NUMBER) ...
- oracle列转行wm_concat,Oracle列转行函数wm_concat版本不兼容解决方案
业务场景 本博客记录一下Oracle列转行函数在Oracle11的一些不兼容问题,vm_concat在一些业务场景是必须的.不过这个函数使用要谨慎,底层实现应该也是group by等等实现的,性能并不 ...
- oracle 列转行
PIVOT select * from 表/子查询 PIVOT 聚合函数[计算字段] for [统计字段] in ([值1], [值2], [值3] 李曼填充需要展示字段的哪些值) 通过将表达式某一列 ...
- oracle数据列转行排序,oracle 列转行函数 WMSYS.WM_CONCAT 排序不规则处理
业务中做报表,需要将一列列数据汇总成一行,然后汇总,如下: 需要将每个产品进行汇总,通过ichartjs进行展示,图表中需要数据的顺序是: var data = [ { name : '产品1', v ...
- unpivot行转列 oracle,Oracle列转行_unpivot
Oracle列转行_unpivot 在实际业务开发环境中,我们经常会遇到要对查询的数据集进行列转行的需求.那么Oracle是如何实现的呢?本文也将通过几个实例来详细讲解一下. Oracle列转行 Or ...
- listagg用mysql实现_Oracle 11g 列转行listagg
在Oracle 11g之前列转行有些麻烦,11g之后,非常简单.现在有功能的业务是,有一张test的表记录的是单据的审批信息,id为审批信息 在Oracle 11g之前列转行有些麻烦,11g之后,非常 ...
- oracle列转行用逗号隔开,Oracle逗号分隔列转行实现方法
Oracle逗号分隔列转行实现方法 那么,现在如果给出一个权限编号,要去检索出用后这个权限的用户集合,就会需要在逗号分隔的多个权限编号中去匹配给出的这个权限编号.如果使用like去做,一则效率不高,二 ...
- oracle 列转行sql函数
1.列转行 列拼接 wm_concat() --11g listagg() within group() 列转行汇总数据 decode() --用decode实现行转列 --适用范围:8i,9i,10 ...
最新文章
- Day10_linux计划任务管理
- Check failed: error == cudaSuccess (35 vs. 0) CUDA driver version is insufficient for CUDA runtime
- mysql中删除某一纵的方法_sql数据库:如何在一个表中填加或者删除一个字段!...
- 产品运营实战系列-产品设计从0到1全流程:以优惠券为例
- linux系统存储文件系统,Linux文件系统的深入分析
- 机箱硬盘指示灯不亮_一文学会“剪不断,理还乱”的主板跳线与机箱连接
- python django前端重构_django修改models重建数据库的操作
- Navicat Mac版中如何使用搜索筛选
- 华为USG防火墙配置
- JSON入门指南--服务端处理JSON
- python图案堆积_Python数据可视化,我是如何做出泡泡堆积关联图
- mumu模拟器显示服务器出错,用mumu模拟器显示错误代码
- 几个简单好用的APP分享给你
- 云南省软考报名时间成绩查询云南省教育考试院云南省人事考试网报名入口
- 计算机架构特点及应用,计算机C语言的特点与结构分析
- 发票识别+发票查验API-企业发票管理自动化
- echarts风向图
- openstack 安装keystone初始化数据库失败
- 基于NModbus4的C#上位机连接与读写(使用屏幕为昆仑通态)
- 兵临城下公开课丨构建蓝队第三道防线——内网防失陷守好最后关卡