文档章节

oracle中把多行记录合并为一行

DennisHill
 DennisHill
发布于 2016/03/08 11:46
字数 253
阅读 143
收藏 2

遇到这么一个问题

id a b c d e
1 1 1 1 1 1
1 2 2 2 2 2
1 3 3 3 3 3
2 4 4 4 4 4
2 5 5 5 5 5
3 6 6 6 6 6
4 7 7 7 7 7
5 8 8 8 8 8
5 9 9 9 9 9


这是表结构,我想查询出这样的结果

id a b c d e
1 1,2,3 1,2,3 1,2,3 1,2,3 1,2,3
2 4,5 4,5 4,5 4,5 4,5
3 6 6 6 6 6
4 7 7 7 7 7
5 8,9 8,9 8,9 8,9 8,9


在oracle中有一个函数wm_concat,用这个函数就可以了

select t.id,

wm_concat(t.a) a,

wm_concat(t.b) b,

wm_concat(t.c) c,

wm_concat(t.d) d,

wm_concat(t.e) e from table t group by t.id;

然而,这个函数的局限性在于,查出来的结果,字段类型是<clob>

其实除了这个wm_concat函数之外,oracle中还提供了另一个函数listagg,也可以完成这样的效果

select t.id,
       listagg(t.a, ',') within GROUP(order by t.a) a,
       listagg(t.b, ',') within GROUP(order by t.b) b
  from tmp_test t
 group by t.id

© 著作权归作者所有

DennisHill
粉丝 1
博文 13
码字总数 5472
作品 0
焦作
私信 提问
Oracle行转列

如果是oracle 10g以上 一个wm_concat函数就可以解决。 如果是oracle 9i以下就有点麻烦了。 表结构如下: NAME Null Type NSECCODE NOT NULL CHAR(6) CRESEARCHERCODE NOT NULL VARCHAR2(20)...

竹逸风
2016/06/22
24
0
oracle rowid唯一, postgresql oid唯一,greenplum oid不唯一

前几天在公司Greenplum创建带OID的表,查询的时候无意发现一个OID可以找到多行记录。 因为GREENPLUM是基于POSTGRES的,个人以为POSTGRES的OID是不唯一的。 今天分别在POSGRESQL和GREENPLUM上...

linpuer
2014/01/18
1K
0
Oracle 行转列pivot 、列转行unpivot 的Sql语句总结

转自:http://blog.csdn.net/xiaokui_wingfly/article/details/42419207 多行转字符串 这个比较简单,用||或concat函数可以实现 实际上就是拆分字符串的问题,可以使用 substr、instr、regex...

Amui
2016/06/29
739
0
[转]Oracle表连接方式学习

出自:http://www.itpub.net/thread-207865-1-1.html 一般常见的Oracle数据库连接有3种: Nested Loop,Merge,Hash Join 1.嵌套循环联接NL(Neeted Loop) 嵌套循环联接也称为嵌套迭代,它将一...

吐槽的达达仔
2014/12/05
41
0
Oracle sql优化必知——表的访问

《访问数据的方法》 访问表中的数据有两种:1、直接访问表 2、先访问索引,再回表 1、直接访问表的两种方法: ①、全表扫描 全表扫描是指Oracle在访问目标表的数据时,会从该表所占用的第一个...

一个笨小孩
2017/08/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JavaScript权威指南笔记3-2

第三章、类型、值和变量 2、文本 I-1 字符串 是一组由16位值组成的不可变的有序序列。 每一个字符来自Unicode字符集 用来表示文本 长度是其所含16位值的个数。 和数组一样,索引从0开始。 JS...

_Somuns
14分钟前
2
0
Spring StateMahcine State 配置详解

状态机包含一系列各种关系的状态,最简单的关系,就是经过状态A事件E直接到状态B,当然还有选择关系,层级关系等等。该篇介绍Spring 状态机 状态的配置。我们知道可以通过方法configure(Sta...

microservice
14分钟前
4
0
基于 HTML5 Canvas 实现的文字动画特效

前言 文字是网页中最基本的元素,一般我们在网页上都是展示的静态文字,但是就效果来说,还是比较枯燥的。文字淡入淡出的动画效果在项目中非常实用,如果有某些关键的文字,可以通过这种动态...

htdaydayup
22分钟前
3
0
2019 年 Java 开发者生态报告!

数据来源自国外的一个调查,在过去的几周,这份调查一共采访了6707名开发人员。数据来源:https://www.baeldung.com/java-in-2019。 1.JDK 版本使用情况 即使在今天 Java 13 都已经发布了,J...

SnailClimb
22分钟前
4
0
支撑微博亿级社交平台,小白也能玩转Redis集群(原理篇)

Redis作为一款性能优异的内存数据库,支撑着微博亿级社交平台,也成为很多互联网公司的标配。这里将以Redis Cluster集群为核心,基于最新的Redis5版本,从原理再到实战,玩转Redis集群 常见R...

分布式系统架构
30分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部