最近在学习的过程中,发现一个挺有意思的函数,它可实现对列值的拼接。下面我们来看看其具体用法。

用法:

对其作用,官方文档的解释如下:

For a specified measure, LISTAGG orders data within each group specified in the ORDER BY clause and then concatenates the values of the measure column.

即在每个分组内,LISTAGG根据order by子句对列植进行排序,将排序后的结果拼接起来。

measure_expr:可以是任何基于列的表达式。

delimiter:分隔符,默认为NUL

order_by_clause:order by子句决定了列值被拼接的顺序。

通过该用法,可以看出LISTAGG函数不仅可作为一个普通函数使用,也可作为分析函数。

order_by_clause和query_partition_clause的用法如下:

下面对该函数进行举例说明:

普通函数,对工资进行排序,用逗号进行拼接。

SQL> select listagg(ename,',')within group(order by sal)name from emp;NAME
----------------------------------------------------------------------------------------------------
SMITH,JAMES,ADAMS,MARTIN,WARD,MILLER,TURNER,ALLEN,CLARK,BLAKE,JONES,FORD,SCOTT,KING

分组函数:

SQL> select deptno,listagg(ename,',')within group(order by sal)name from emp group by deptno;DEPTNO NAME
---------- ----------------------------------------------------------------------------------------------------10 MILLER,CLARK,KING20 SMITH,ADAMS,JONES,FORD,SCOTT30 JAMES,MARTIN,WARD,TURNER,ALLEN,BLAKE

分析函数:

SQL> select deptno,ename,sal,listagg(ename,',')within group(order by sal)over(partition by deptno)name from emp;DEPTNO ENAME             SAL NAME
---------- ---------- ---------- ----------------------------------------10 MILLER           1300 MILLER,CLARK,KING10 CLARK            2450 MILLER,CLARK,KING10 KING             5000 MILLER,CLARK,KING20 SMITH             800 SMITH,ADAMS,JONES,SCOTT,FORD20 ADAMS            1100 SMITH,ADAMS,JONES,SCOTT,FORD20 JONES            2975 SMITH,ADAMS,JONES,SCOTT,FORD20 SCOTT            3000 SMITH,ADAMS,JONES,SCOTT,FORD20 FORD             3000 SMITH,ADAMS,JONES,SCOTT,FORD30 JAMES             950 JAMES,MARTIN,WARD,TURNER,ALLEN,BLAKE30 MARTIN           1250 JAMES,MARTIN,WARD,TURNER,ALLEN,BLAKE30 WARD             1250 JAMES,MARTIN,WARD,TURNER,ALLEN,BLAKE30 TURNER           1500 JAMES,MARTIN,WARD,TURNER,ALLEN,BLAKE30 ALLEN            1600 JAMES,MARTIN,WARD,TURNER,ALLEN,BLAKE30 BLAKE            2850 JAMES,MARTIN,WARD,TURNER,ALLEN,BLAKE14 rows selected.

转载于:https://www.cnblogs.com/xieweikai/p/6838264.html

Oracle函数之LISTAGG相关推荐

  1. [转载]oracle函数listagg的使用说明

    工作中经常遇到很多需求是这样的,根据条件汇总某些字段,比如我遇到的是,我们公司有三个投资平台,同一个客户拿手机号在三个平台都注册了,但注册过的用户名不一样,显示的时候需要根据手机号显示所有注册过的名称 ...

  2. oracle函数listagg的使用说明(分组后连接字段)

    关于oracle函数listagg的使用说明 工作中经常遇到客户提出这样的需求,希望在汇总合并中,能够把日期逐个枚举出来. 如图,原始数据是这样的: 客户希望能够实现这样的汇总合并: 那么通常我会使用 ...

  3. 使用oracle函数 LISTAGG 函数报错。ORA-00923: 未找到要求的 FROM 关键字

    ORA-00923发生的原因之一是: LISTAGG(event, ':') WITHIN GROUP(ORDER BY opttime)函数中分隔符为英文分号. 这算是oracle函数的一个小BUG ...

  4. oracle中有关listagg函数的使用

    oracle中有关listagg的使用 1. 作用 2. 语法 3. 实例 问题拓展 1. 作用 可以实现行转列,将多列数据聚合为一列,实现数据的压缩. 2. 语法 listagg(measure_e ...

  5. oracle wm_concat 替换函数,Oracle 10g无法使用listagg函数的替代解决方案[wm_concat]

    LISTAGG函数介绍 LISTAGG函数是Oracle 11.2新增的函数,用于字符串拼接,11.2之前的版本无法使用,先来简单介绍一下listagg函数的使用 LISTAGG完整语法 以上是官方文 ...

  6. row number函数 oracle,oracle函数 ROW_NUMBER()

    [语法]ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2) [功能]表示根据COL1分组,在分组内部根据 COL2排序,而这个值就表示每组内部排序后 ...

  7. 三、Oracle 函数

    一.Oracle 操作集 二.Oracle 数据类型 三.Oracle 函数 四.Oracle 视图 五.Oracle 序列 六.Oracle 同义词 七.Oracle 索引 八.Oracle PL/ ...

  8. mysql listagg函数_Oracle函数之LISTAGG

    最近在学习的过程中,发现一个挺有意思的Oracle函数,它可实现对列值的拼接.下面我们来看看其具体用法. 最近在学习的过程中,发现一个挺有意思的Oracle函数,它可实现对列值的拼接.下面我们来看看其 ...

  9. mybatis可以用oracle,使用MyBatis调用oracle函数(基于注释)

    我需要使用注解在MyBatis中调用Oracle函数.使用MyBatis调用oracle函数(基于注释) 我的映射: @Select("{ CALL #{outParam, jdbcType ...

最新文章

  1. java程序员遇到的问题_Java 程序员平时最常遇到的故障:系统OOM (一)
  2. 1所更名、3所新设!山西4所高校获批复
  3. SAP CRM文本配置里的Continue标签,到底控制了什么行为
  4. 德勤发布2021年度企业AI应用现状报告,AI驱动已成竞争必需品
  5. canvas实现动态小球碰撞
  6. Mybatis之select元素
  7. 解决ASUS P5GC-MX/1333声卡驱动不能正常安装的问题
  8. 一个不用背单词的高效英文学习法
  9. 教皇修改之后丢失的十天
  10. 胶囊网络之 Found a Reason for me? Weakly-supervised Grounded Visual Question Answering using Capsules论文笔记
  11. 随机打乱数据的几种方式
  12. java 下拉复选框_JAVA个人小程序GUI篇-收银(标签、按钮、复选框、下拉标、文本域、表格······)...
  13. 根据输入的银行卡号显示开户银行类型,并将银行卡号四位分隔
  14. 新风医疗集团就私有化交易达成最终合并协议;​康泰生物成功分离新冠德尔塔变异株 | 医药健闻...
  15. 未来科技的五大发展趋势
  16. Mendeley中WordPlugin问题
  17. 综述|姿态估计方法大盘点
  18. 一个域名价值怎么看 域名估值的标准是什么
  19. 天正如何批量导出坐标_cad中批量导出坐标的方法【AutoCAD教程】
  20. 什么是动态IP,动态IP服务怎么选?

热门文章

  1. 读《费马大定理——一个困惑了世间智者358年的迷》
  2. 深信服2018年秋招测试工程师面试
  3. 如何利用负载测试工具快速进行负载测试
  4. oracle 11g 安装
  5. SpringBoot JPA配置文件
  6. CnOpenData食品安全抽检数据
  7. Java - 锁和监视器有什么区别?
  8. [转载]二十四节气养生大全
  9. VM ubuntu16.04 无法将虚拟机更改为选定监视器布局
  10. 洛谷P3950 部落冲突