listagg 函数的作用就是将多行记录合成一行记录

基础用法:listagg(a,b) within group(order by c)

a指的是要进行拼接的字段, b指的是连接字段与字段之前的连接符号 c指的是按照什么顺序将字段连接,sql语句最后面要使用group by 分组,listagg是将分组之后的字段数据进行拼接,如果没有最后没有分组会报错 ora00937:not a single-group group function.

假设现在存在一个表users,包含以下字段
         用户编号( id varchar2(30) , )用户姓名 (name  varchar2(100) ,)用户年龄 (age  number,)用户性别 (sex number , ) 男:1   , 女:0用户部门(dept varchar2(20) ,)分为 a,b,c,d四个小部门。

现在要查出每个部门的员工编号集合,每个部门当做一条记录。

select dept,
listagg(id,',') within group(order by age) ids ,
listagg(name,',') within group(order by age) names
from users group by dept

这样就可以查出部门编号、部门下用户id拼接的ids,部门下用户名拼接的names 的数据了。

mysql也有对应的合并函数 group_concat()也可以实现oracle listagg的效果

语法
group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator ‘分隔符’] )

select dept,group_concat ( id ORDER BY age separator ',' ) ids,group_concat ( name ORDER BY age separator ',' ) names,
from users  group by dept

本文mysq实现部分参考了 其他博客,参考博客链接:https://blog.csdn.net/sinat_36257389/article/details/95052001

2020-11-02 oracle sql listagg函数使用相关推荐

  1. oracle的listagg函数

    今天需要将 BDST_ID相同的PROJECT_ID用逗号分隔拼成一个字符串,于是想到了oracle的listagg函数 表名为PM_BDST_PROJECT select tt.BDST_ID, l ...

  2. oracle的concat字符串太长,oracle 使用listagg函数后 字符串连接的结果过长

    oracle 使用listagg函数后 字符串连接的结果过长最终解决 SELECT r.department_id law_dept_id, ( SELECT xmlagg(xmlparse(cont ...

  3. 【Oracle】LISTAGG 函数的用法

    函数介绍 listagg函数是Oracle 11.2 c 版本推出的,用于数据分组后将指定列数据通过间隔符号拼接,将多行转为一行显示. 实际使用 以班级为单位,查询每个班级学生(同班学生显示在一行) ...

  4. 【Oracle】LISTAGG 函数的使用

    LISTAGG 函数介绍 listagg 函数是 Oracle 11.2 推出的新特性. 其主要功能类似于 wmsys.wm_concat 函数, 即将数据分组后, 把指定列的数据再通过指定符号合并. ...

  5. Oracle 中 LISTAGG 函数的介绍以及使用

    LISTAGG 函数介绍 listagg 函数是 Oracle 11.2 推出的新特性. 其主要功能类似于 wmsys.wm_concat 函数, 即将数据分组后, 把指定列的数据再通过指定符号合并. ...

  6. oracle ora32771,listagg函数 ORA-01489: result of string concatenation is too long的解决办法

    概述 listagg函数是Oracle 11g推出的一个分组函数,可以将字符串按分组连接起来. SQL> select deptno ,listagg(ename,'->') within ...

  7. Oracle的 wm_concat 的排序问题,Oracle的 listagg 函数[转]

    一大早来广图排了大半个钟的队,总算占了个好位子.--2018-07-28 1.环境: 1.操作系统 windows 10 2.数据库:Oracle Database 11g r2 2.需求: 还是看例 ...

  8. Oracle的 wm_concat 的排序问题,Oracle的 listagg 函数

    一大早来广图排了大半个钟的队,总算占了个好位子.--2018-07-28 1.环境: 1.操作系统 windows 10 2.数据库:Oracle Database 11g r2 2.需求: 还是看例 ...

  9. Oracle的 listagg 函数,多行合并一行

    转自:https://blog.csdn.net/Huay_Li/article/details/81257655 --创建学校类型-年级表 create table SchoolGrade(scho ...

最新文章

  1. @Bean 与@Component的区别
  2. 图像的评价指标之SSMI——结构相似性
  3. android设置title_所见即所得的 Android 自动化神器,用 Automate 一键收藏文章
  4. 自动机理论、形式语言和计算导论提纲
  5. 2020身高体重标准表儿童_2020年儿童标准体重表出炉!过胖影响发育!(附身高体重标准表)...
  6. P3986 斐波那契数列
  7. php工作要求,PHP工作岗位要求
  8. 信息论实验-信源编码算法 (Huffman and Shannonn Fano编码C++实现)
  9. 使用海康8700综合平台对ds-6908解码器进行解码上墙大概配置
  10. html静态网站基于游戏网站设计与实现共计10个页面 (仿地下城与勇士游戏网页)
  11. StudentManagerSystem(学生管理系统)(利用Result类,各种工具类)
  12. 主机链接vm虚拟机中的oracle实例
  13. android技术篇(三)解密data区
  14. Matlab图形窗口大小的控制 ,plot窗口大小,figure大小,axis设置,实用
  15. 转载:html打开本地文件夹读取,显示图片
  16. vmware 解决二进制转换与此平台上的长模式不兼容
  17. linux IO_FILE 利用
  18. TinyXml 介绍
  19. 我看电影阿凡达(Avatar)
  20. caffe中HDF5层及数据生成

热门文章

  1. 360浏览器打不开网页?来看看解决方法
  2. 02-如何引入HandleBar.js
  3. 简单统计商店某商品销售情况
  4. 什么是IoC 和 DI
  5. 什么是IOC和DI?DI是如何实现的?
  6. 关于类似新浪微博的后台问题
  7. Java 动静分离_如何做前后端动静分离
  8. python彩票分析_排列五4000万大奖得主透秘诀:技术分析是王道
  9. 碟片管理系统代码重构示例
  10. 2021年JAVA 精心整理的常见面试题-附详细答案【持续更新~~】