对于将一列多值合并成一行问题,oracle提供了wmsys.wm_concat和listagg函数处理此问题,下面我们以emp表中数据为例,看看两函数的使用方法

假设我们需要统计每种job下面有哪些员工,要求在一行显示员工姓名,首先看看emp表中的数据:

①利用listagg函数处理

②利用wm_concat函数处理

wm_concat函数作用:除了处理多行合并问题,还给我们直接根据某个表的字段建立视图带来方便

③注意分析函数中的partition by 与group by 的区别

下面我们看看在分析函数中写partition by 与上述结果的有什么不同效果

注意点1:我们会发现pratition by 这种情况下,ename值确实进行了合并,但记录数并没有去重

下面我们再以sum分析函数中写order by时,看看其效果

注意2:此时是在job粒度上,根据order by 中的顺序做的累积

oracle listagg和wm_concat函数的更多相关文章

  1. oracle中WMSYS.WM_CONCAT函数的版本差异

    昨天在测试的时候发现,开发人员写的一段程序放在开发库中是好的,但是放在测试库中就会有问题.开发人员一直找不到问题的原因在哪里.于是就花了点时间协助开发人员来找问题的根本原因. 通过一些技术手段,定位到 ...

  2. 【Oracle】wmsys.wm_concat函数字段值为空

    这个是因为字符集的问题,和空值是没关系的.其实已经取到了数据,可以验证一下返回的不是0,但是由于这个里面有个chr(0)字符,而且可能第一个字符就是chr(0),所以就显示得怪异的空现象.至于为何会出 ...

  3. 关于新版oracle不支持wm_concat函数的解决办法

    oracle12G中不支持wm_concat,就改用:listagg(合并字段,'连接符号') within group (order by 字段) 来实现列转行

  4. oracle 12C wmsys.wm_concat()函数

    http://blog.itpub.net/31392094/viewspace-2149577/

  5. 重写Oracle的wm_concat函数,自定义分隔符、排序

    oracle中,wm_concat函数是一个聚合函数,和mysql中的group_concat函数类似,不过group_concat函数比较强大,可以定义分隔符和排序,当然所谓强大是相对的,这里假使我 ...

  6. oracle wm_concat 函数无法使用的情况下,使用LISTAGG()函数

    http://dacoolbaby.iteye.com/blog/1698957 --20180327 重写wm_concat函数,解决行数超过上限问题 /*执行前请将APPS替换为当前登录用户*/ ...

  7. Oracle学习笔记:wm_concat函数合并字段

    在Oracle中使用wm_concat(column)可以实现字段的分组合并,逗号分隔. 例如,现有表temp_cwh_test: -- 创建临时表 create table temp_cwh_tes ...

  8. Oracle的wm_concat函数(转)

    wm_concat函数简单说就是行转列显示. 转自:http://christy-fang.iteye.com/blog/1299850 首先让我们来看看这个神奇的函数wm_concat(列名),该函 ...

  9. oracle 12c 关于wm_concat 的替换;LISTAGG

    之所以用到了wm_concat函数.是想到达这样的结果集. 转为这样的===========> 返回这样的数据,易与配合echarts的数据准备. 看上去十分的方便,但是遗憾的是,oracle极 ...

随机推荐

  1. SQL Server 2008 R2 常用系统函数学习

    /******************************************* * 聚合函数 *******************************************/ SEL ...

  2. git 随笔

    还有一些git的指令没有用过,记录在这里. 1. 设置远程branch的指令 There is no tracking information for the current branch.Pleas ...

  3. body-parser 用法

    1.下载 body-parser 模块  :   npm install body-parser 2.require body-parser 模块(引入),并用一个变量接收(此处栗子变量为 bodyp ...

  4. Regsvr32 在64位机器上的用法(转载)

    转载:http://blog.csdn.net/xuzhimin1991/article/details/65436864 regsvr32是windows上注册 OLE 控件(DLL 或 Activ ...

  5. 尚硅谷面试第一季-12Linux常用服务类相关命令

    课堂重点: 实操命令及运行结果: (centos 6) service network status chkconfig --list chkconfig --level 5 network off ...

  6. 关于二进制——lowbit运算

    lowbit(n)意思即为找出n在二进制表示下最后一位1即其后面的0所组成的数值,别的东西算法书上有,这里提出一个重要的公式 lowbit(n)=n&(~n+1)=n&(-n),这个有 ...

  7. Oracle使用——oracle表锁住,杀掉锁表进程

    背景 在操作Oracle时,多人同时操作oracle数据库的同一张表的时候,经常会造成锁表现象,这时需要手动进行解锁. 步骤 以dba身份登录Oracle数据库(否则用户缺少杀掉进程权限,需要给用户分 ...

  8. Bootstrap3基础 glyphicon 设置图标的颜色与大小

      内容 参数   OS   Windows 10 x64   browser   Firefox 65.0.2   framework     Bootstrap 3.3.7   editor    ...

  9. 虚拟机极简配置manjaro gnome

    一.安装gnome启动到桌面后,卸载所有不必要的软件,减少系统大小 打开[增加/删除软件],找到要删除的软件卸载 ms-office ---微软在线办公软件 Thunderbird ---邮箱 kon ...

  10. Read.csv: some rows are missing

    read.csv in R doesn't import all rows from csv file The OP indicates that the problem is caused by q ...