oracle函数listagg使用】的更多相关文章

关于oracle函数listagg的使用说明 工作中经常遇到客户提出这样的需求,希望在汇总合并中,能够把日期逐个枚举出来. 如图,原始数据是这样的: 客户希望能够实现这样的汇总合并: 那么通常我会使用listagg这个函数,但是好多网上都是系统的全面的介绍listagg这个函数的使用方法,看起来很费力气.在这里我简明扼要的说明一下 实现这个需求的语句是这样的: select name, listagg(ddate,' / ') within group (order by name) as dd…
工作中经常遇到很多需求是这样的,根据条件汇总某些字段,比如我遇到的是,我们公司有三个投资平台,同一个客户拿手机号在三个平台都注册了,但注册过的用户名不一样,显示的时候需要根据手机号显示所有注册过的名称.(我用的是oracle数据库) 1.原始数据是这样的,如图: 2.要求显示成这样,如图: 我查了一下oracle函数,这个listagg函数就可以满足它,在网上看了看,都是介绍listagg这个函数的使用方法,看起来真费劲,于是在这里我简明扼要的说明一下 3.具体实现是这样的,也就不废话,看完例子…
做项目的过程中遇到过一个这样的需求,在“用户查询”前台加一个字段“用户角色”,要将用户的所有角色查询出来放到一个字段中,角色之间用“,”分隔. 发现一个办法是使用Oracle的listagg方法. WITH TMP AS (SELECT TU.USERNAME, TE.EMP_NAME, TE.EMP_DUTY_NAME, TR.ROLE_NAME FROM TS_USER       TU, TS_USER_ROLE  TUR, TS_ROLE       TR, TM_DEPARTMENT …
作用 可以实现将多列记录聚合为一列记录,实现数据的压缩 语法结构 listagg(measure_expr,delimiter) within group ( order by order_by_clause); 解释:measure_expr可以是基于任何列的表达式 delimiter分隔符,默认为NULL order_by_clause决定了列值的拼接顺序 举例 普通函数,对工资进行排序,并按照逗号进行拼接 SQL> select listagg(ename,',')within group…
--Oracle列转行函数LISTAGG() with tb_temp as( select 'China' 国家,'Wuhan' 城市 from dual union all select 'China' 国家,'Dongjing' 城市 from dual union all select 'China' 国家,'Xijing' 城市 from dual union all select 'Germany' 国家,'Berlin' 城市 from dual union all select…
简单的Oracle列转行函数Listagg示例: CREATE TABLE tbl_test (catalog VARCHAR(1),product VARCHAR(2),amount NUMBER); INSERT INTO tbl_test VALUES('A','A1',1); INSERT INTO tbl_test VALUES('A','A1',2); INSERT INTO tbl_test VALUES('B','B1',3); INSERT INTO tbl_test VALU…
今天需要将 BDST_ID相同的PROJECT_ID用逗号分隔拼成一个字符串,于是想到了oracle的listagg函数 表名为PM_BDST_PROJECT select tt.BDST_ID, listagg (tt.PROJECT_ID, ',') WITHIN GROUP (ORDER BY tt.PROJECT_ID) PROJECT_IDS FROM PM_BDST_PROJECT tt GROUP BY tt.BDST_ID 这样就大功告成了......…
LISTAGG( to_char(Item_Category_Name), ',') WITHIN GROUP(ORDER BY Item_Category_Name)  -- 将 Item_Category_Name 列的内容以", "进行分割合并.排序: to_char(Item_Category_Name) --  to_char(列名)  解决使用聚合函数 LISTAGG 进行查询后,对查询结果乱码问题进行转码处理:…
oracle分析函数——listagg篇 (1)使用listagg将多行数据合并到一行 例表: select deptno, ename from emp order by deptno, ename 假设有一个需求,需要将emp表中相同部门的雇员姓名存放到一行中,不同的姓名用逗号“,”分隔,结果如下图: 我们可以用oracle11g里面的分析函数listagg来实现,SQL语句如下: select deptno, listagg(ename,',') within group (order b…
oracle函数或者叫存储过程,在实际的开发过程中对于复杂的业务需求是非常有用的,非常有效率的也是非常好玩儿的一个技术点. 平常在开发过程中对于CRUD功能较多.一般SQL即可应付,大不了就是长一点而已.但是遇到复杂业务需求,在Java代码中开发略显混乱时,函数将可以作为一个非常优秀的实现方式,在数据库中对业务进行处理. 下面介绍一下oracle函数的集中语法,小弟学艺不精,如有遗漏,请不吝指正: oracle语法在编写过程中其实比较简单,首先它是一个脚本语言,也叫作解释性语言,脚本语言如pyt…